![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
开发笔记
文章平均质量分 69
个人开发笔记
杨小胖要减肥
这个作者很懒,什么都没留下…
展开
-
Jackson自定义序列化与反序列化注解
Jackson自定义序列化与反序列化注解原创 2022-07-28 15:07:05 · 2602 阅读 · 1 评论 -
获取泛型的实际类型
获取泛型的实际类型原创 2022-07-12 12:18:58 · 3525 阅读 · 0 评论 -
SkyWalking监控告警
SkyWalking监控告警实现原创 2022-07-05 15:39:24 · 834 阅读 · 1 评论 -
策略模式在项目中的使用
策略模式在项目中的使用原创 2022-07-04 10:38:19 · 294 阅读 · 0 评论 -
SpringCloudGateway基于Nacos实现动态路由优化
SpringCloudGateway基于Nacos实现动态路由优化原创 2022-06-28 15:56:20 · 588 阅读 · 0 评论 -
SpringCloudGateway自定义Filter
SpringCloudGateway自定义Filter原创 2022-06-28 15:53:51 · 2334 阅读 · 0 评论 -
SpringCloudGateway整合ribbon实现路由
SpringCloudGateway整合ribbon实现路由原创 2022-06-28 10:43:11 · 1530 阅读 · 0 评论 -
使用maven-shade-plugin relocation解决包冲突
项目中使用了org.springframework.cglib.beans.BeanCopier进行JavaBean的复制操作,此操作不会进行类型转换操作,及类型不一致时,属性无法赋值,包括基本类型和包装类型,需要使用Converter进行类型转换。查看Converter时发现没有参数名的描述,于是在github上查询Spring-core的源码,发现源码与Jar中文件差异很大spring-core.jarspring-core源码许多jar中的class文件在源码中不存在,怀疑为打包时进行了某原创 2021-11-24 15:13:59 · 2242 阅读 · 1 评论 -
AbstractRoutingDataSource实现动态数据源切换
AbstractRoutingDataSourcespring-jdbc的包中,提供了AbstractRoutingDataSource用于数据源路由操作public abstract class AbstractRoutingDataSource extends AbstractDataSource implements InitializingBean {该类实现了InitializingBean接口,说明初始化时会调用afterPropertiesSet方法@Overridepublic原创 2021-11-24 13:39:57 · 1340 阅读 · 1 评论 -
SpEL表达式的使用
Spring Expression LanguageSpEL是Spring提供的一种的表达式语言,支持在运行时查询和操作对象。SpEL并不直接与Spring相关联,可以独立使用。SpEL解析器SpEL提供了对应的解析器SpelExpressionParser用于解析SpEL表达式EvaluationContextEvaluationContext用于计算表达式以解析属性、方法、字段,并帮助执行类型转换。Spring提供了两个实现SimpleEvaluationContext和StandardE原创 2021-11-21 18:16:07 · 6935 阅读 · 2 评论 -
SpringBoot基于Redis使用SpringCahe
Spring Cache 官方文档注解@Cacheable作用于方法或者类上。作用于类上表示该类中所有方法都会走缓存操作cacheNames/value缓存名称,可配置多个,调用方法前,会检查是否有命中的缓存,如果有命中至少一个缓存,则返回缓存值,不执行方法操作。更新缓存时,value中所有的缓存名称对应的缓存都会更新。@Cacheable(value={"a","b"})public String a(){.....}@Cacheable(value="b")public Stri原创 2021-11-18 13:16:21 · 881 阅读 · 0 评论 -
SpringBoot上传文件限制
项目中需要控制上传文件的大小,采用了SpringBoot中的配置进行配置,并添加了相关的异常拦截处理。application.yamlspring: servlet: multipart: max-file-size: 5MB # 文件上传大小限制为5MB max-request-size: 5MB # 请求大小限制为5MB全局异常配置@RestControllerAdvicepublic class CustomExceptionHand原创 2021-11-17 20:38:17 · 2095 阅读 · 0 评论 -
Spring AOP
注解开启AOP@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)proxyTargetClass默认值为false,表示默认使用JDK动态代理,未实现接口的类使用CGLIB,为true表示默认使用CGLIB代理exposeProxy默认值为false,为true表示通过aop框架暴露该代理对象,aopContext能够访问相关注解@Aspect声明切面bean,加在类上,配合@Component使用,否则Sp原创 2021-11-17 20:33:09 · 751 阅读 · 1 评论 -
基于freemarker生成pdf
java8字符集GBK。原创 2021-11-17 11:31:03 · 4640 阅读 · 1 评论 -
SpringBoot Mybatis多数据源配置
生产环境数据源配置为jndi,故代码中的多数据源配置基于jndiJndi数据源配置类public class JndiDataSourceConfig { /** * 自定义全局mybatis配置 */ @Autowired private MybatisConfig mybatisConfig; /** * 创建数据源 * @param jndiDataSouceProperties 数据源配置配 * @return *原创 2021-11-17 00:29:54 · 251 阅读 · 0 评论 -
自定义注解的基本操作
编写自定义注解需要一定的反射相关知识元注解作用在其他注解上的注解@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。@Documented - 标记这些注解是否包含在用户文档中。@Target - 标记这个注解应该是哪种 Java 成员。@Inherited - 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)@Repeatable - Java 8 开始支持,标识某注解可以在同一个声明上使用多次。其中@原创 2021-11-17 00:08:59 · 154 阅读 · 0 评论 -
Java反射的基础使用
java.lang.reflect的包中,提供了反射相关的类,常用的为Field:字段,Method:方法,Annotation:注解,Constructor:构造器,我们平常最常见到的Class类则在java.lang目录下。Field,Method,Constructor都与Class相关,可以通过Class获取到Class常用获取方式class常用的获取方式有3种类型.class对象的getClass方法()Class.forName(className),使用此方法需传入对原创 2021-11-17 00:03:20 · 279 阅读 · 0 评论 -
NacosConfig配置中心手动添加监听
使用Nacos做注册中心,会遇到如html,json,txt这类数据的监听,或者需要对数据进行特殊处理的情况,此时需要采用通过手动获取配置中心的数据初始化并且添加监听手动添加Nacos监听public void addNacosListener(String dataId, String group) { try { Properties properties = new Properties(); // gatewayConfig为配置的需要监听的参数 // nacos地址原创 2021-11-16 13:30:46 · 3178 阅读 · 0 评论 -
Java根据属性排序时的null值处理
@Datapublic static class ProjectFileType { private String value; private String name; private Integer order;}针对ProjectFileType这个类,在返回给前端时需要通过order进行排序处理考虑到order字段可能为空,使用了nullsLast处理List<ProjectFileType> list;list.sort(Comparator.null原创 2021-11-15 19:35:12 · 3186 阅读 · 1 评论 -
LogBack配置
logback配置原创 2021-11-15 16:54:42 · 1936 阅读 · 0 评论 -
脚本管理工具-DBDeploy
环境搭建1.基本环境Java、Maven、数据库2.初始化控制表创建CHANGELOG表create table CHANGELOG( CHANGE_NUMBER NUMBER(22) not null, COMPLETE_DT TIMESTAMP(6) not null, APPLIED_BY VARCHAR2(100) not null, DESCRIPTION VARCHAR2(500) not null)/alter table CHANGELOG原创 2021-11-15 10:40:56 · 1516 阅读 · 0 评论 -
使用Cglib的BeanCopier复制对象失败
使用BeanCopier进行对象属性的复制,在对某一部分代码进行重构之后发现一部分POJO使用BeanCopier进行属性赋值失败。进行资料查找,发现Cglib中通过Introspector获取BeanInfo,再获取对应的getter和setter方法,其中获取setter方法时,只会获取返回类型为void的setter方法 else if (argCount == 1) { if (int.class.equals(argTypes[0]) && name.startsWit原创 2021-11-14 15:59:11 · 1610 阅读 · 0 评论