【8.0】【sys】【menu】菜单缓存的自动配置

pull/57/head
fengshuonan 2023-07-15 00:25:07 +08:00
parent 0f1c072530
commit a46be9c600
3 changed files with 120 additions and 1 deletions

View File

@ -0,0 +1,59 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.sys.starter.cache.menu;
import cn.hutool.cache.CacheUtil;
import cn.hutool.cache.impl.TimedCache;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants;
import cn.stylefeng.roses.kernel.sys.modular.menu.cache.menucode.MenuCodeMemoryCache;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
*
*
* @author fengshuonan
* @since 2023/7/15 0:22
*/
@Configuration
@ConditionalOnMissingClass("org.springframework.data.redis.connection.RedisConnectionFactory")
public class MenuCacheAutoConfiguration {
/**
*
*
* @author fengshuonan
* @since 2023/7/15 0:23
*/
@Bean
public CacheOperatorApi<String> menuCodeCache() {
// 1小时过期
TimedCache<String, String> themeCache = CacheUtil.newTimedCache(1000 * SysConstants.DEFAULT_SYS_CACHE_TIMEOUT_SECONDS);
return new MenuCodeMemoryCache(themeCache);
}
}

View File

@ -0,0 +1,58 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.sys.starter.cache.menu;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.cache.redis.util.CreateRedisTemplateUtil;
import cn.stylefeng.roses.kernel.sys.modular.menu.cache.menucode.MenuCodeRedisCache;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
/**
*
*
* @author fengshuonan
* @since 2023/7/15 0:23
*/
@Configuration
@ConditionalOnClass(name = "org.springframework.data.redis.connection.RedisConnectionFactory")
public class MenuRedisCacheAutoConfiguration {
/**
*
*
* @author fengshuonan
* @since 2023/7/15 0:23
*/
@Bean
public CacheOperatorApi<String> menuCodeCache(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, String> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new MenuCodeRedisCache(redisTemplate);
}
}

View File

@ -9,4 +9,6 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.stylefeng.roses.kernel.sys.starter.cache.user.UserMemoryCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.sys.starter.cache.user.UserRedisCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.sys.starter.cache.role.RoleMemoryCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.sys.starter.cache.role.RoleRedisCacheAutoConfiguration
cn.stylefeng.roses.kernel.sys.starter.cache.role.RoleRedisCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.sys.starter.cache.menu.MenuCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.sys.starter.cache.menu.MenuRedisCacheAutoConfiguration