Spring Boot
文章平均质量分 67
Spring Boot相关技术的学习
愿做无知一猿
蒹葭苍苍,白露为霜。
展开
-
【SpringBoot】springboot数据使用多线程批量入数据库
Spring实现事务的原理是通过ThreadLocal把数据库连接绑定到当前线程中,同一个事务中数据库操作使用同一个jdbc connection,新开启的线程获取不到当前jdbc connection。可见时间从180秒,缩短到了28秒,但是@Transactional对于多线程是控制不了所有的事务的。可见5个线程都报错了,但是去查询数据库,却可以查询到5000条数据,这是不应该出现的情况。分别放开子线程报错和主线程报错,会发现事务都可以正常回滚,达到了预期的效果。耗时时间:87217ms。原创 2023-02-02 17:09:32 · 5329 阅读 · 6 评论 -
【SpringBoot】FilterRegistrationBean一次只能注册一个Filter,那在Filter个数不确定的情况下如何注册呢,那便是需要手动注册过滤器
1. 首先编写程序时,或多或少会存在几个固定的Filter,那么第一步就是为确定的那几个Filter指定好顺序。(通常情况下的使用场景是:你要将你现在编写的项目打包成jar给别的项目使用)2. 其次程序确定的几个Filter已经编写好了,那么需要将它们和不确定的那几个放在一起进行重新排序。3. 将排好序的Filter进行注册。原创 2023-01-16 18:48:06 · 1130 阅读 · 0 评论 -
【SpringBoot】使用AOP+注解实现请求参数的指定自动填充
使用AOP+注解实现请求参数的指定自动填充原创 2023-01-09 18:08:27 · 1716 阅读 · 2 评论 -
【SpringBoot】在一个@Bean方法内,this调用同一个类的@Bean方法会有什么效果呢?
此时配置类会被CGLIB增强(生成代理对象),放进IoC容器内的是代理,方法相互调用能够保证是同一个实例,都指向IoC内的那个单例,可以支持通过常规Java调用相同类的@Bean方法而保证是容器内的Bean,但是运行时会给该类生成一个CGLIB子类放进容器,有一定的性能、时间开销。模式中的Bean,不支持Bean间的相互调用,如果相互调用,那么将会被视为标准的Java方法调用,Spring不会通过。方法,甚至只是在一个非常普通的类中声明的Bean方法,都被认为是Lite版的配置类。原创 2023-01-05 10:33:54 · 766 阅读 · 1 评论 -
【SpringBoot】在A类上标注@Component和@ConditionalOnMissingBean({A.class})两个注解,导致bean注册失败
我有一个类名为,我在其上加上注解和期望其在没有这个Bean的时候注册一个Bean,但是得到的结果却是,容器中并不存在这个Bean。}System.out.println(beanDefinitionName+"存在");}}}}那么此时,如果容器中存在该bean,springboot程序启动时就会如下图但是,实际情况是只存在@Component注解时会输出,一旦加上使用了就会不存在。......原创 2022-07-27 22:14:49 · 1413 阅读 · 2 评论 -
【SpringBoot】异步执行,设置某些异步任务优先执行
前提: @Async 注解可以实现异步功能,但是如果想让其中一些异步任务先于一些异步任务执行,那么这个注解就实现不了了。参考大神文章:这篇文章,需要大显神通解决思路:为使用这里的配置基本和使用注解时配置线程池的无异,就是使用了去为在等待队列中的线程设置优先级。调试和输出结果String类型任务优先级高,List类型任务优先级低输出结果:可见List任务在最后执行完成......原创 2022-06-14 16:20:47 · 1450 阅读 · 1 评论 -
【Spring Boot】Spring Boot在项目启动后,预留接口,在不重启项目情况下修改数据库连接信息。
背景我将项目部署完成之后,突然发现我数据库连接用的本地的127.0.0.1,但是很明显我部署上服务器它就应该用服务器上的数据库,就此我就可以在代码上修改一下重新部署,但是!我比较懒,万一哪一次又忘了,那我不得再来一遍?所以就打算预留接口,传参修改,当然也可以配字典啥的。。。不多BBpom.xml<!--mysql--><dependency> <groupId>mysql</groupId> <artifactId>mys原创 2021-06-21 22:53:29 · 824 阅读 · 3 评论