2021年6月16日

摘要: public interface StudentService { public void add(String studentName); } 定义一个spring的FactoryBean,FactoryBean在通过spring实例化生成的不是自己本身,而是通过调用的getObject方法返回的 阅读全文
posted @ 2021-06-16 17:13 swave 阅读(547) 评论(0) 推荐(0) 编辑
摘要: import java.io.IOException; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.context.annotation.Cla 阅读全文
posted @ 2021-06-16 15:16 swave 阅读(285) 评论(0) 推荐(0) 编辑
摘要: org.springframework.context.annotation.ConfigurationClassPostProcessor(Bean定义的后置处理器)中,轮询BeanDefinitionRegistry中注册的所有已注册的类,找出包含Import,ComponentScan,Imp 阅读全文
posted @ 2021-06-16 14:34 swave 阅读(230) 评论(0) 推荐(0) 编辑

2021年1月14日

摘要: 1 insert方法:数据库使用唯一索引,保证不重复插入数据 2 update方法:并发不大:使用乐观锁(版本号),或者使用状态机。 3 select方法:天然就支持幂等,多次查询对数据不造成影响。 4 delete方法:一次删除和多次删除的结果对系统数据不影响。 阅读全文
posted @ 2021-01-14 16:51 swave 阅读(179) 评论(0) 推荐(0) 编辑

2020年6月29日

摘要: 根据特定配置异常进行重试的线程池,支持配置最大重试次数,超时重试时间间隔等。 以下为具体代码: import java.net.SocketTimeoutException; import java.text.SimpleDateFormat; import java.util.Date; impo 阅读全文
posted @ 2020-06-29 17:47 swave 阅读(810) 评论(0) 推荐(0) 编辑

2019年12月23日

摘要: 优化背景:项目中有一个批量更新的方法,由于代码逻辑是逐个调用数据库进行更新,导致在更新数量多的情况下,整个方法执行慢。 正常业务情况下,更新的数量能达到500个,假设更新一个耗时为100ms,那么500个需要的时间为50秒,用户肯定等不了那么久,需要优化。 一开始想法是,开启多线程去更新,一个线程执 阅读全文
posted @ 2019-12-23 17:08 swave 阅读(6122) 评论(0) 推荐(0) 编辑

2019年10月24日

摘要: 原理:通过Spring提供的BeanPostProcessor来对使用了事务注解的类进行动态代理,通过spring提供的获取数据库连接工具类DataSourceUtils来获取连接。 只有两个类 MyTransactional 和 TransactionBeanPostProcessor,MyTra 阅读全文
posted @ 2019-10-24 15:54 swave 阅读(334) 评论(0) 推荐(0) 编辑

2019年10月21日

摘要: 最近项目要做国际化,由于前端直接显示了后端返回的错误码文案,所以后端需要针对错误码做国际化。 实现过程中主要考虑要满足以下两个需求: 1、由于世界的语言非常多,所以新增一门语言能够快速增加,不需要改动代码骨架。 2、在新增一个错误码时,不同的语言的实现类都要同步新增一个错误码,如果未新增时,系统启动 阅读全文
posted @ 2019-10-21 16:49 swave 阅读(1163) 评论(0) 推荐(0) 编辑

2019年10月18日

摘要: 我们知道springboot自动配置@EnableAutoConfiguration是通过@Import(AutoConfigurationImportSelector.class)来把自动配置组件加载进spring的context中的. 我们来看看@Import的定义: /** * Indicat 阅读全文
posted @ 2019-10-18 17:11 swave 阅读(959) 评论(0) 推荐(0) 编辑
摘要: springboot启动时,会自动识别出当前环境是否是web环境还是非web环境。 ConfigurableApplicationContext org.springframework.boot.SpringApplication.createApplicationContext(): 那么我们来详 阅读全文
posted @ 2019-10-18 12:27 swave 阅读(1418) 评论(0) 推荐(0) 编辑

导航