【7.3.2】【user】更新自动配置

pull/41/head
fengshuonan 2022-11-08 23:35:36 +08:00
parent 6b1c1e5720
commit 4bbb56a11f
7 changed files with 236 additions and 22 deletions

View File

@ -8,9 +8,9 @@ import java.util.Map;
/**
*
*
* <p>
* keyIDvalueMap<Long, Integer>
*
* <p>
* mapkeystatUrlIdvalue
*
* @author xixiaowei

View File

@ -8,6 +8,10 @@ import java.util.Map;
/**
* Redis
* <p>
* keyIDvalueMap<Long, Integer>
* <p>
* mapkeystatUrlIdvalue
*
* @author xixiaowei
* @date 2022/2/9 16:38

View File

@ -22,7 +22,7 @@
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.system.starter;
package cn.stylefeng.roses.kernel.system.starter.cache;
import cn.hutool.cache.CacheUtil;
import cn.hutool.cache.impl.TimedCache;
@ -30,7 +30,7 @@ import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.cache.api.constants.CacheConstants;
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceDefinition;
import cn.stylefeng.roses.kernel.system.modular.resource.cache.MemoryResourceCache;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -41,7 +41,8 @@ import org.springframework.context.annotation.Configuration;
* @date 2021/5/17 16:44
*/
@Configuration
public class GunsResourceCacheAutoConfiguration {
@ConditionalOnMissingClass("org.springframework.data.redis.connection.RedisConnectionFactory")
public class GunsResourceMemoryCacheAutoConfiguration {
/**
*
@ -50,7 +51,6 @@ public class GunsResourceCacheAutoConfiguration {
* @date 2021/5/17 16:44
*/
@Bean
@ConditionalOnMissingBean(name = "resourceCache")
public CacheOperatorApi<ResourceDefinition> resourceCache() {
TimedCache<String, ResourceDefinition> timedCache = CacheUtil.newTimedCache(CacheConstants.NONE_EXPIRED_TIME);
return new MemoryResourceCache(timedCache);

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.system.starter.cache;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.cache.redis.util.CreateRedisTemplateUtil;
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceDefinition;
import cn.stylefeng.roses.kernel.system.modular.resource.cache.RedisResourceCache;
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;
/**
* Redis
*
* @author fengshuonan
* @date 2022/11/8 23:26
*/
@Configuration
@ConditionalOnClass(name = "org.springframework.data.redis.connection.RedisConnectionFactory")
public class GunsResourceRedisCacheAutoConfiguration {
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:27
*/
@Bean
public CacheOperatorApi<ResourceDefinition> resourceCache(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, ResourceDefinition> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new RedisResourceCache(redisTemplate);
}
}

View File

@ -22,7 +22,7 @@
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.system.starter;
package cn.stylefeng.roses.kernel.system.starter.cache;
import cn.hutool.cache.CacheUtil;
import cn.hutool.cache.impl.TimedCache;
@ -31,17 +31,17 @@ import cn.stylefeng.roses.kernel.system.api.constants.StatisticsCacheConstants;
import cn.stylefeng.roses.kernel.system.api.constants.SystemCachesConstants;
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserOrgDTO;
import cn.stylefeng.roses.kernel.system.modular.home.cache.InterfaceStatisticsMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.role.cache.RoleDataScopeMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.role.cache.RoleMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.role.cache.RoleResourceMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRole;
import cn.stylefeng.roses.kernel.system.modular.home.cache.InterfaceStatisticsMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.theme.cache.ThemeMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.theme.pojo.DefaultTheme;
import cn.stylefeng.roses.kernel.system.modular.user.cache.SysUserMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.user.cache.UserOrgMemoryCache;
import cn.stylefeng.roses.kernel.system.modular.user.cache.UserRoleMemoryCache;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -55,7 +55,8 @@ import java.util.Map;
* @date 2021/2/28 10:29
*/
@Configuration
public class GunsSystemCacheAutoConfiguration {
@ConditionalOnMissingClass("org.springframework.data.redis.connection.RedisConnectionFactory")
public class GunsSystemMemoryCacheAutoConfiguration {
/**
* 线
@ -64,7 +65,6 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2021/2/28 10:30
*/
@Bean
@ConditionalOnMissingBean(name = "sysUserCacheOperatorApi")
public CacheOperatorApi<SysUserDTO> sysUserCacheOperatorApi() {
TimedCache<String, SysUserDTO> sysUserTimedCache = CacheUtil.newTimedCache(SystemCachesConstants.USER_CACHE_TIMEOUT_SECONDS * 1000);
return new SysUserMemoryCache(sysUserTimedCache);
@ -77,7 +77,6 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2021/7/29 23:00
*/
@Bean
@ConditionalOnMissingBean(name = "userRoleCacheApi")
public CacheOperatorApi<List<Long>> userRoleCacheApi() {
TimedCache<String, List<Long>> userRoleCache = CacheUtil.newTimedCache(SystemCachesConstants.USER_CACHE_TIMEOUT_SECONDS * 1000);
return new UserRoleMemoryCache(userRoleCache);
@ -90,7 +89,6 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2021/7/29 23:00
*/
@Bean
@ConditionalOnMissingBean(name = "roleInfoCacheApi")
public CacheOperatorApi<SysRole> roleInfoCacheApi() {
TimedCache<String, SysRole> roleCache = CacheUtil.newTimedCache(SystemCachesConstants.USER_CACHE_TIMEOUT_SECONDS * 1000);
return new RoleMemoryCache(roleCache);
@ -103,7 +101,6 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2021/7/30 23:09
*/
@Bean
@ConditionalOnMissingBean(name = "userOrgCacheApi")
public CacheOperatorApi<SysUserOrgDTO> userOrgCacheApi() {
TimedCache<String, SysUserOrgDTO> roleCache = CacheUtil.newTimedCache(SystemCachesConstants.USER_CACHE_TIMEOUT_SECONDS * 1000);
return new UserOrgMemoryCache(roleCache);
@ -116,7 +113,6 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2021/7/30 23:29
*/
@Bean
@ConditionalOnMissingBean(name = "roleResourceCacheApi")
public CacheOperatorApi<List<String>> roleResourceCacheApi() {
TimedCache<String, List<String>> roleCache = CacheUtil.newTimedCache(SystemCachesConstants.USER_CACHE_TIMEOUT_SECONDS * 1000);
return new RoleResourceMemoryCache(roleCache);
@ -129,7 +125,6 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2021/7/31 17:59
*/
@Bean
@ConditionalOnMissingBean(name = "roleDataScopeCacheApi")
public CacheOperatorApi<List<Long>> roleDataScopeCacheApi() {
TimedCache<String, List<Long>> roleCache = CacheUtil.newTimedCache(SystemCachesConstants.USER_CACHE_TIMEOUT_SECONDS * 1000);
return new RoleDataScopeMemoryCache(roleCache);
@ -142,7 +137,6 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2021/7/31 17:59
*/
@Bean
@ConditionalOnMissingBean(name = "themeCacheApi")
public CacheOperatorApi<DefaultTheme> themeCacheApi() {
TimedCache<String, DefaultTheme> themeCache = CacheUtil.newTimedCache(Long.MAX_VALUE);
return new ThemeMemoryCache(themeCache);
@ -155,9 +149,8 @@ public class GunsSystemCacheAutoConfiguration {
* @date 2022/2/9 16:53
*/
@Bean
@ConditionalOnMissingBean(name = "requestCountCacheApi")
public CacheOperatorApi<Map<Long,Integer>> requestCountCacheApi() {
TimedCache<String, Map<Long,Integer>> timedCache = CacheUtil.newTimedCache(StatisticsCacheConstants.INTERFACE_STATISTICS_CACHE_TIMEOUT_SECONDS);
public CacheOperatorApi<Map<Long, Integer>> requestCountCacheApi() {
TimedCache<String, Map<Long, Integer>> timedCache = CacheUtil.newTimedCache(StatisticsCacheConstants.INTERFACE_STATISTICS_CACHE_TIMEOUT_SECONDS);
return new InterfaceStatisticsMemoryCache(timedCache);
}
}

View File

@ -0,0 +1,156 @@
/*
* 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.system.starter.cache;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.cache.redis.util.CreateRedisTemplateUtil;
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserOrgDTO;
import cn.stylefeng.roses.kernel.system.modular.home.cache.InterfaceStatisticsRedisCache;
import cn.stylefeng.roses.kernel.system.modular.role.cache.RoleDataScopeRedisCache;
import cn.stylefeng.roses.kernel.system.modular.role.cache.RoleRedisCache;
import cn.stylefeng.roses.kernel.system.modular.role.cache.RoleResourceRedisCache;
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRole;
import cn.stylefeng.roses.kernel.system.modular.theme.cache.ThemeRedisCache;
import cn.stylefeng.roses.kernel.system.modular.theme.pojo.DefaultTheme;
import cn.stylefeng.roses.kernel.system.modular.user.cache.SysUserRedisCache;
import cn.stylefeng.roses.kernel.system.modular.user.cache.UserOrgRedisCache;
import cn.stylefeng.roses.kernel.system.modular.user.cache.UserRoleRedisCache;
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;
import java.util.List;
import java.util.Map;
/**
* Redis
*
* @author fengshuonan
* @date 2022/11/8 23:26
*/
@Configuration
@ConditionalOnClass(name = "org.springframework.data.redis.connection.RedisConnectionFactory")
public class GunsSystemRedisCacheAutoConfiguration {
/**
* 线
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<SysUserDTO> sysUserCacheOperatorApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, SysUserDTO> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new SysUserRedisCache(redisTemplate);
}
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<List<Long>> userRoleCacheApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, List<Long>> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new UserRoleRedisCache(redisTemplate);
}
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<SysRole> roleInfoCacheApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, SysRole> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new RoleRedisCache(redisTemplate);
}
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<SysUserOrgDTO> userOrgCacheApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, SysUserOrgDTO> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new UserOrgRedisCache(redisTemplate);
}
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<List<String>> roleResourceCacheApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, List<String>> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new RoleResourceRedisCache(redisTemplate);
}
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<List<Long>> roleDataScopeCacheApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, List<Long>> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new RoleDataScopeRedisCache(redisTemplate);
}
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<DefaultTheme> themeCacheApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, DefaultTheme> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new ThemeRedisCache(redisTemplate);
}
/**
*
*
* @author fengshuonan
* @date 2022/11/8 23:32
*/
@Bean
public CacheOperatorApi<Map<Long, Integer>> requestCountCacheApi(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Map<Long, Integer>> redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
return new InterfaceStatisticsRedisCache(redisTemplate);
}
}

View File

@ -1,4 +1,6 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.stylefeng.roses.kernel.system.starter.GunsSystemCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.system.starter.GunsResourceCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.system.starter.cache.GunsSystemMemoryCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.system.starter.cache.GunsSystemRedisCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.system.starter.cache.GunsResourceMemoryCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.system.starter.cache.GunsResourceRedisCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.system.starter.GunsSystemHomeStatisticsAutoConfiguration