spring
riabai
Practice makes perfect
展开
-
spring4到spring5 AOP执行顺序的转变
前言:之前听尚硅谷周阳阳哥讲课,说是spring5的aop执行顺序和spring4不一样了,并且选用了springboot2.3.10版本测试,结果确实变化了。但是,本人亲自测试以后发现自己使用的springboot2.2.2顺序并没有发生变化,为了弄清楚原因,特意查了下资料和官网,经过代码测试最后得出结果如下:从spring 5.2.7.RELEASE开始(包括5.2.7),spring aop的执行顺序发生了变化。测试代码:public interface CommonService {原创 2022-01-17 11:09:52 · 1575 阅读 · 0 评论 -
为什么循环依赖需要三级缓存?
参考:Spring循环依赖-earlySingletonObjects的作用 - 知乎原创 2021-12-01 23:01:04 · 291 阅读 · 0 评论 -
spring.png
原创 2021-11-29 22:58:00 · 195 阅读 · 0 评论 -
@Transactional生效的方法,控制其中一部分事务不会回滚
//注入事务管理器@Autowiredprivate PlatformTransactionManager txManager;method(){ TransactionStatus transactionStatus = null; try { //修改订单表存储车电包支付返回的相关信息 DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTr.原创 2021-02-20 16:53:04 · 2110 阅读 · 0 评论 -
spring与单例bean
单例模式是23种设计模式中比较简单的模式,应用也非常广泛,如在Spring中,每个Bean默认都是单例的,这样做的优点是Spring容器可以管理这些Bean的生命周期,决定什么时候创建出来,什么时候销毁,销毁的时候要如何处理,等等。如果采用非单例模式(Prototype类型),则Bean初始化后的管理交由J2EE容器,Spring不再跟踪管理Bean的生命周期。--设计模式之禅 7.5 Page120...原创 2021-02-18 16:28:04 · 106 阅读 · 0 评论 -
三、Spring4 高级装配
一、环境与profilemaven额外依赖: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.25.RELEASE</version> </depende原创 2021-01-27 16:32:16 · 153 阅读 · 0 评论 -
二、Spring4 装配Bean
Spring提供了三种主要的装配机制:(1)在XML中进行显式配置(2)在Java中进行显式配置(3)隐式的bean发现机制和自动装配自动化装配bean:Spring从两个角度来实现自动化装配:(1)组件扫描(component-scan):Spring会自动发现应用上下文中所创建的bean(2)自动装配(autowiring):Spring自动满足bean之间的依赖POJO://CD的一个接口public interface CompactDisc { vo原创 2021-01-26 14:31:42 · 83 阅读 · 0 评论 -
一、Spring4 Spring之旅
https://www.manning.com/books/spring-in-action-fourth-editionSpring理念:简化Java开发为了降低Java开发的复杂性,Spring采取了以下4种关键策略:(1)基于POJO的轻量级和最小侵入性编程;(2)通过依赖注入和面向接口实现松耦合;(3)基于切面和惯例进行声明式编程;(4)通过切面和模板减少样板式代码;整体结构和maven依赖: <dependency> <g.原创 2021-01-25 15:00:51 · 316 阅读 · 1 评论 -
spring手动使用事务
spring项目手动控制事务(非分布式事务)先上代码:@Autowiredprivate PlatformTransactionManager platformTxManager ;@RequestMapping("/testPlatformTransactionManager ")public int testPlatformTransactionManager (){ DefaultTransactionDefinition txDefinition = new Default.原创 2020-12-15 10:08:00 · 978 阅读 · 0 评论 -
使用TimeUnit代替Thread.sleep
在jdk1.5之后,jdk引入了一个枚举TimeUnit,其对sleep方法提供了很好的封装,使用他可以省去时间单位的换算步骤,比如线程想休眠3小时24分17秒88毫秒,使用TimeUnit来实现就非常的简便优雅了:Thread.sleep(12257088L);System.out.println("下面效果等同");TimeUnit.HOURS.sleep(3);TimeUnit.MINUTES.sleep(24);TimeUnit.SECONDS.sleep(17);TimeUnit.原创 2020-11-09 16:32:04 · 361 阅读 · 0 评论 -
Spring bean的生命周期
https://www.processon.com/diagraming/5fa102a9f346fb44166f23bc一、Bean实例化和DI1、扫描XML文件/注释类/Java配置类中的bean定义2、创建bean实例3、注入类依赖项(调用setter,为自动装配字段设置值)二、检查SpringAwareness4、如果bean类型实现了BeanNameAware,则调用setBeanName()5、如果bean类型实现了BeanClassLoaderAware,则调.原创 2020-11-03 15:39:39 · 118 阅读 · 0 评论 -
springboot1.5.19使用外置tomcat启动war
由于兼容的问题,项目使用的springboot版本不能太高,否则部分监控功能无法生效,而且使用的tomcat也是指定的封装版本,想要使用war的方式启动,需要如下步骤:1、首先,需要排除web项目中springboot内置的tomcat, <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin原创 2020-09-02 13:33:15 · 432 阅读 · 0 评论 -
springboot集成logback日志
logback是springboot默认支持的日志框架,logback可以结合Java 简易日志门面(Simple Logging Facade for Java,缩写 SLF4J)使用,下面是springboot集成logback的方式:只需要在resources目录下创建一个logback-spring.xml,然后在xml中配置对应的内容即可,下面是我自己查阅一些资料后整理出来的一份xml文件源码,感觉还可以,分享给大家:<?xml version="1.0" encoding="UT原创 2020-09-02 13:17:55 · 204 阅读 · 0 评论 -
1、spring源码解析
WebApplicationInitializer;//父接口//1、注册我们的contextLoadListener//2、创建一个空的父容器//3、把listner添加到servletContextAbstractContextLoaderInitializer;//1、注册我们的dispatcherServlet//2、创建一个空的子容器//3、把dispatcherServlet添加到servletContextAbstractDispatcherServletInitia...原创 2020-07-23 11:14:31 · 92 阅读 · 0 评论