Skip to content

Commit d9ae134

Browse files
authored
Merge pull request #113 from hocgin/develop
Develop
2 parents a870182 + 7e713a2 commit d9ae134

File tree

33 files changed

+699
-96
lines changed

33 files changed

+699
-96
lines changed

spring-boot-cache/cache-spring-boot-autoconfigure/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<dependencies>
1717
<dependency>
1818
<groupId>org.springframework.cloud</groupId>
19-
<artifactId>spring-cloud-starter</artifactId>
19+
<artifactId>spring-cloud-context</artifactId>
2020
</dependency>
2121
<dependency>
2222
<groupId>org.springframework.boot</groupId>
@@ -43,7 +43,7 @@
4343
</dependency>
4444
<dependency>
4545
<groupId>org.redisson</groupId>
46-
<artifactId>redisson-spring-boot-starter</artifactId>
46+
<artifactId>redisson</artifactId>
4747
</dependency>
4848
<!-- Basic -->
4949
<dependency>

spring-boot-cache/cache-spring-boot-autoconfigure/src/main/java/in/hocg/boot/cache/autoconfiguration/RedissonAutoConfiguration.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2828
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2929
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
30+
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
3031
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
3132
import org.springframework.boot.context.properties.EnableConfigurationProperties;
3233
import org.springframework.context.annotation.Bean;
@@ -40,7 +41,7 @@
4041
*/
4142
@Configuration
4243
@ConditionalOnClass({Redisson.class})
43-
@AutoConfigureBefore({org.redisson.spring.starter.RedissonAutoConfiguration.class, CacheAutoConfiguration.class})
44+
@AutoConfigureBefore({CacheAutoConfiguration.class})
4445
@RequiredArgsConstructor(onConstructor = @__(@Lazy))
4546
@EnableConfigurationProperties(RedissonProperties.class)
4647
public class RedissonAutoConfiguration {
@@ -179,15 +180,18 @@ public DistributeLockAspect distributedLockAspect(DistributedLock distributedLoc
179180

180181
@Bean
181182
@ConditionalOnMissingBean
182-
@ConditionalOnBean({CacheRepository.class})
183-
public NoRepeatSubmitAspect noRepeatSubmitAspect(CacheRepository repository) {
184-
return new NoRepeatSubmitAspect(repository);
183+
@ConditionalOnBean({RedissonClient.class})
184+
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
185+
public RateLimitAspect rateLimitAspect(RedissonClient redissonClient) {
186+
return new RateLimitAspect(redissonClient);
185187
}
186188

187189
@Bean
188190
@ConditionalOnMissingBean
189-
public RateLimitAspect rateLimitAspect(RedissonClient redissonClient) {
190-
return new RateLimitAspect(redissonClient);
191+
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
192+
@ConditionalOnBean({CacheRepository.class})
193+
public NoRepeatSubmitAspect noRepeatSubmitAspect(CacheRepository repository) {
194+
return new NoRepeatSubmitAspect(repository);
191195
}
192196

193197
@Bean

spring-boot-cache/cache-spring-boot-autoconfigure/src/main/java/in/hocg/boot/cache/autoconfiguration/repository/CacheRepository.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.List;
55
import java.util.Map;
66
import java.util.Set;
7+
import java.util.concurrent.TimeUnit;
78

89
/**
910
* Created by hocgin on 2021/5/13
@@ -40,13 +41,29 @@ public interface CacheRepository {
4041
*/
4142
<T> void setExpire(final String[] keys, final T[] values, final Duration duration);
4243

44+
/**
45+
* 有效时间
46+
*
47+
* @param key
48+
* @return
49+
*/
50+
Long getExpire(String key);
51+
52+
/**
53+
* 有效时间
54+
*
55+
* @param key
56+
* @param timeUnit
57+
* @return
58+
*/
59+
Long getExpire(String key, TimeUnit timeUnit);
60+
4361
/**
4462
* 一次性添加数组到过期时间的缓存,不用多次连接,节省开销
4563
*
4664
* @param keys the keys
4765
* @param values the values
4866
*/
49-
5067
<T> void set(final String[] keys, final T[] values);
5168

5269
/**

spring-boot-cache/cache-spring-boot-autoconfigure/src/main/java/in/hocg/boot/cache/autoconfiguration/repository/RedisRepositoryImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,16 @@ public <T> void setExpire(String[] keys, T[] values, Duration duration) {
9191
});
9292
}
9393

94+
@Override
95+
public Long getExpire(String key) {
96+
return redisTemplate.getExpire(key);
97+
}
98+
99+
@Override
100+
public Long getExpire(String key, final TimeUnit timeUnit) {
101+
return redisTemplate.getExpire(key, timeUnit);
102+
}
103+
94104
@Override
95105
public <T> void set(String[] keys, T[] values) {
96106
redisTemplate.execute((RedisCallback<Long>) connection -> {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package in.hocg.boot.cache.autoconfiguration.utils;
2+
3+
import lombok.experimental.UtilityClass;
4+
5+
/**
6+
* @author hocgin
7+
*/
8+
@UtilityClass
9+
public class CacheUtils {
10+
11+
/**
12+
* 统一KEY
13+
*
14+
* @param prefix
15+
* @param value
16+
* @return
17+
*/
18+
public static String useKey(Enum<?> prefix, String value) {
19+
return String.format("%s:%s", prefix.name(), value);
20+
}
21+
}

spring-boot-dependencies/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,11 @@
666666
<artifactId>redisson-spring-boot-starter</artifactId>
667667
<version>${redisson.version}</version>
668668
</dependency>
669+
<dependency>
670+
<groupId>org.redisson</groupId>
671+
<artifactId>redisson</artifactId>
672+
<version>${redisson.version}</version>
673+
</dependency>
669674
<dependency>
670675
<groupId>com.github.xiaoymin</groupId>
671676
<artifactId>knife4j-spring-boot-starter</artifactId>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package in.hocg.boot.excel.autoconfiguration.annotation;
2+
3+
import java.lang.annotation.Documented;
4+
import java.lang.annotation.ElementType;
5+
import java.lang.annotation.Retention;
6+
import java.lang.annotation.RetentionPolicy;
7+
import java.lang.annotation.Target;
8+
9+
@Target({ElementType.FIELD})
10+
@Retention(RetentionPolicy.RUNTIME)
11+
@Documented
12+
public @interface ExcelUnique {
13+
/**
14+
* 错误信息
15+
*/
16+
String message() default "表格内出现重复数据";
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package in.hocg.boot.excel.autoconfiguration.convert;
2+
3+
import com.alibaba.excel.converters.Converter;
4+
import com.alibaba.excel.enums.CellDataTypeEnum;
5+
import com.alibaba.excel.metadata.GlobalConfiguration;
6+
import com.alibaba.excel.metadata.data.ReadCellData;
7+
import com.alibaba.excel.metadata.data.WriteCellData;
8+
import com.alibaba.excel.metadata.property.ExcelContentProperty;
9+
import in.hocg.boot.utils.LangUtils;
10+
11+
import java.io.Serializable;
12+
import java.util.Map;
13+
14+
/**
15+
* 枚举值转换
16+
*
17+
* @author hocgin
18+
*/
19+
public abstract class AsMappingConverter implements Converter<Serializable> {
20+
private final Map<String, Serializable> toMapping;
21+
private final Map<Serializable, String> asMapping;
22+
23+
public AsMappingConverter(Map<String, Serializable> mapping) {
24+
this(mapping, LangUtils.reverse(mapping));
25+
}
26+
27+
public AsMappingConverter(Map<String, Serializable> toMapping, Map<Serializable, String> asMapping) {
28+
this.toMapping = toMapping;
29+
this.asMapping = asMapping;
30+
}
31+
32+
@Override
33+
public CellDataTypeEnum supportExcelTypeKey() {
34+
return CellDataTypeEnum.STRING;
35+
}
36+
37+
@Override
38+
public Serializable convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty property, GlobalConfiguration configuration) throws Exception {
39+
return toMapping.get(cellData.getStringValue());
40+
}
41+
42+
@Override
43+
public WriteCellData<Serializable> convertToExcelData(Serializable value, ExcelContentProperty property, GlobalConfiguration configuration) throws Exception {
44+
return new WriteCellData<>(asMapping.get(value));
45+
}
46+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package in.hocg.boot.excel.autoconfiguration.convert;
2+
3+
import in.hocg.boot.utils.enums.DataDictEnum;
4+
5+
/**
6+
* 数据字典转换
7+
*
8+
* @author hocgin
9+
*/
10+
public class DataDictConverter extends AsMappingConverter {
11+
12+
public DataDictConverter(DataDictEnum enumClass) {
13+
super(enumClass.asMapping());
14+
}
15+
16+
}

0 commit comments

Comments
 (0)