图平台技术点
一、编码规范
1、基于Optional的空值优雅处理:是时候优雅的和NullPointException说再见了
二、数据库访问
1、JPA
- Spring Data JPA系列1:JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?给你个选择SpringDataJPA的理由!
- Spring Data JPA系列2:快速在SpringBoot项目中熟练使用JPA
- Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍
- Spring Data JPA系列4:Spring声明式事务处理与多数据源支持
- Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
jpa sql日志(验证失败,待排查)
spring.jpa.show-sql=true
logging.level.org.hibernate.SQL=debug logging.level.org.hibernate.type.descriptor.sql.BasicBinder=trace
2、QueryDSL
1)APT机制:聊聊如何运用JAVA注解处理器(APT)
2)QueryDSL:QueryDSL——比SpringData JPA更面向对象
SpringBoot环境下QueryDSL-JPA的入门及进阶
三、springboot
1、核心机制
SpringBoot核心机制解读系列三、ApplicationListener
2、定时调度
1)基于@Scheduled:SpringBoot实现固定、动态定时任务 https://juejin.cn/post/7013234573823705102
2)基于@Scheduled:设置线程池 https://www.cnblogs.com/coderacademy/p/18058208
3)基于quartz: https://cloud.tencent.com/developer/article/1640190
3、CommandLineRunner 与 ApplicationRunner
SpringBoot2.x基础篇:使用CommandLineRunner或ApplicationRunner
4、事务提交或回滚后执行后续动作 https://developer.aliyun.com/article/1047724
5、从上下文获取 HttpServletRequest
public static HttpServletRequest getCurrentRequest() { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); if (requestAttributes == null) { return null; } ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes; return servletRequestAttributes.getRequest(); }
6、Intercepter使用ant路径语法(/**/test/**)需要实例化:AntPathMatcher,否则excludePathPatterns只能匹配绝对路径(路径不需要上下文)
@Configuration public class ServerConfiguration implements WebMvcConfigurer { @Bean public AuthInterceptor authInterceptor() { return new AuthInterceptor(); } @Bean public AntPathMatcher patternMatcher() { return new AntPathMatcher(); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(authInterceptor()) .addPathPatterns("/**") .excludePathPatterns( "/health", "/**/test/**" ); } }
四、springcloud gateway
1、过滤器
五、Guava
1、图
简单图算法类:com.google.common.graph.Graphs
2、缓存
六、多数据源
一、gds
1)定义接口类
二、es
七、其他
1、文件
1)目录分隔符: java.io.File.separator
2)临时目录:org.apache.commons.io.FileUtils.getTempDirectoryPath()
2、shiro
官网: https://shiro.apache.org/reference.html
分布式session方案1: spring boot shiro+session+redis 实现登录会话、会话保持、分布式session共享
分布式session方案2: SHIRO-REDIS
分布式session方案3: EnterpriseCacheSessionDAO
3、openfeign
其他: SpringCloud OpenFeign 全功能配置详解(一文吃透OpenFeign)
4、elasticsearch RestHighLevelClient
5、cypher过滤规则与拼接
Filters & LogicFilter & FieldFilter
GraphCypherBuilder