- 博客(15)
- 收藏
- 关注
原创 nginx 旧URL到新URL 改变路径的反向代理配置
需求 :把 /api/** 映射为 /project/**注意点: 如果 cookie path 设置的是 /project 那么发送至/api/**的请求不会携带 /project/**的cookie 导致cookie丢失,请求被安全策略拦截Nginx rewrite官方文档rewrite <正则表达式> <替换文本> [flag];如果正则表达式包含“ }”或“ ;”字符,则整个表达式应该用单引号或双引号括起来。替换文本中 $1 $2…代表被正则匹配的第N个内容替换
2021-12-06 17:44:48
995
原创 注册一个不影响任何自动配置的任意Bean并取用
做Camunda集成的时候,需要注册一个独立于原有系统 DataSource 和 DataSourceTransactionManager 的Bean(这两个类都必须走Bean的生命流程才能完全初始化),但又希望完全不影响原来的配置,包括Spring提供的自动配置类 DataSourceTransactionManagerAutoConfiguration、DataSourceAutoConfiguration。但是这两个自动配置类都有这样的注解@ConditionalOnMissingBean({ D
2021-12-02 17:36:40
295
原创 判断一个对象是不是mybatis的mapper代理实例,反射取出其继承的接口的泛型信息
核心判断方法是Proxy.getInvocationHandler(XXXMapper) instanceof org.apache.ibatis.binding.MapperProxymybatis 生成动态代理的方法在org.apache.ibatis.binding.MapperProxyFactory#newInstance()主要是通过Proxy.newProxyInstance()protected T newInstance(MapperProxy<T> mapperPr
2021-12-02 17:35:34
575
原创 Jackson JSON序列化保持列表List 有序
JSON本身是无序的,保持有序就需要把list 按照顺序 改为Map<Integer,Object>使用jackson的转换器功能@SuppressWarnings("rawtypes")public class OrderedListJsonConverter extends StdConverter<List, Map<Integer, Object>> { @Override public Map<Integer, Object>
2021-12-02 17:35:01
1845
原创 Spring Controller uri参数使用enum枚举类接收,自定义转换方式无视大小写
Baeldung: 在 Spring 中使用枚举作为请求参数controller层接收枚举参数的时候,使用的是org.springframework.core.convert.support.StringToEnumConverterFactory最终调用的方法是java.lang.Enum#valueOf()所以默认只能传递枚举的.name()(按照规范枚举类命名一般都是大写),但是uri一般是无视大小写的,所以需要注册一个能够转换小写枚举类的转换器比如我们有一个枚举类public enum R
2021-12-02 17:34:17
2393
原创 扩展BeanCopier实现只复制非null值
众所周知,BeanCopier 是使用编织字节码的方式实现的bean属性复制,速度基本上可以持平是手写转换类的水平,但是spring 的cglib BeanCopier 虽然有一个 Converter接口,但实际上convert并不传递 target 对应的字段属性,所以没有办法利用 Converter 接口任意定制bean的复制规则package org.springframework.cglib.core;public interface Converter {/** * @param var
2021-10-13 22:06:47
1718
原创 解决shardingsphere 4.1.1 SQLFeatureNotSupportedException: isValid
解决方案: @Bean public DataSourcePoolMetadataProvider getMetadata(DataSource encryptDataSource){ return dataSource -> { if(dataSource instanceof EncryptDataSource && encryptDataSource instanceof EncryptDataSource ){
2021-10-13 09:04:59
909
原创 解决Spring I18n国际化 子模块 NoSuchMessageException
子模块资源包位置:子模块POM: <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include>
2021-10-12 19:38:30
338
1
原创 解决Spring AOP 在RememberMeServices 导致的NullPointerException
廖雪峰:AOP避坑指南AbstractRemembermeService logger为null导致登录失败透过现象看原理:详解Spring中Bean的this调用导致AOP失效的原因揭秘 Spring AOP 失效的罪因,看了都说好!Spring AOP出现NullPointerException原因是 AbstractRememberMeServices 有一个被外部调用的final方法,cglib无法代理final方法导致的,而这个方法又使用了this+类变量,而生成cglib代理类不会初始
2021-10-08 21:02:09
227
原创 Spring java代码注册mybatis TypeHandler
@Bean public TypeHandler<XXX> XXXTypeHandler(){ return new XXXTypeHandler<>(); }需要使用mybatis-spring-boot-starter原理是MybatisAutoConfiguration 构造函数中的ObjectProvider<TypeHandler[]>... public MybatisAutoConfigur...
2021-10-08 10:50:38
352
原创 Spring和SpringSecurity 的全局异常处理
spring异常中,controller层传出的异常可以由@ExceptionHandler 处理,比如处理sql异常????@Slf4j@RestControllerAdvicepublic class SqlExceptionHandler { @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(SQLIntegrityConstraintViolationException.class) public R
2021-09-18 20:51:30
3696
2
原创 unicode 中日韩统一表意文字 java正则表达式
汉字正则表达式^[\u4e00-\u9fa5]{0,}$ 有点过时了参考wiki:中日韩统一表意文字:长度大于4位的unicode 正则 需要 \x{h...h} 形式表示public class PatternUtil { private PatternUtil() {} public static final String UNIHAN_PATTERN = "^[" + "\\u4E00-\\u9FA5" + //1993中日韩统一表意文字 ..
2021-09-01 19:53:27
17514
原创 SpringSecurity 通用用户实体类模板,兼容动态权限和Spring OAuth2.0 Authorization server
import com.fasterxml.jackson.annotation.JsonFormat;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.security.core.GrantedAuthori.
2021-08-30 18:01:10
424
原创 java POI XSSFWorkbook 给excel加密
@GetMapping("/test")@ResponseBody public void getWorkbook(HttpServletResponse response) throws IOException, GeneralSecurityException { response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;.
2021-08-09 19:48:22
3117
3
原创 解决阿里云效webhook通知spring-config bus monitor热更新无效
代码库从gitlab迁移到云效之后,webhook失效了,仔细检查发现,spring-cloud-config-monitor 只支持、github、gitlab、bitbucket、gitea、gitee、gogs还不支持云效,只好自己参照一下源码注册一个云效的bean,结果发现还是无效,仔细对比了一下gitlab和云效的webhook body,发现云效commits字段没有added、removed、modified属性,只好调整一下path,webhook的时间从几十ms变成了3000多ms,不知还
2021-07-31 21:35:11
408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人