
Spring
vvhaleCH
这个作者很懒,什么都没留下…
展开
-
Component和Bean的区别
2.Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册成Spring应用上下文中的bean。通常方法体包含了最终产生bean实例的逻辑。1.Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。原创 2024-11-12 00:38:37 · 228 阅读 · 0 评论 -
过滤器和拦截器的区别
2.使用的范围上来说,过滤器依赖与servlet,依赖于tomcat,只能用在web应用中;4.范围上,过滤器几乎可以作用于所有的进入容器的请求,拦截器则只能拦截controller对应的action请求和一些静态资源请求。3.触发时间上,过滤器在servlet之前触发,拦截器在servlet之后、controller之前触发。6.action的生命周期中,拦截器可以调用多次,但是过滤器只能在容器初始化时使用一次。1.过滤器是基于函数回调的,拦截器是基于反射机制(动态代理)的。原创 2024-11-12 00:37:24 · 175 阅读 · 0 评论 -
Spring-监听器
servlet:就是对request和response进行处理的容器,它在filter之后执行,servlet其中的一部分就是controller层(标记为servlet_2),还包括渲染视图层(标记为servlet_3)和进入controller之前系统的一些处理部分(servlet_1),另外我们把servlet开始的时刻标记为servlet_0,servlet结束的时刻标记为servlet_4。3)servlet_3和servlet_4之间,即结束视图渲染,但是还没有到servlet的结束。原创 2024-11-12 00:36:26 · 324 阅读 · 0 评论 -
@Transactional
3.isolation:事务的隔离级别,默认是DEFAULT,也就是使用数据源的默认隔离级别,对于mysql来说就是可重复读RR。7.最好是直接加在接口上,一些只读接口没必要加,同时只对public方法生效,这是由于事务的实现方式是AOP,反射获取方法。1.value属性:多数据源的时候可能会用来设置要用哪个事务管理器,默认是个空字符串。1.如果非要在加上该注解的地方使用try...catch语句块,可以考虑使用手动回滚。2.propagation:事务的传播行为,默认是REQUIRED。原创 2024-11-10 21:18:03 · 203 阅读 · 0 评论 -
Spring-
但是可以独立的回滚(父事务要try...catch一下,避免影响)。2.事务的传播是从上到下的,假如一个A方法是required,里面调用一个require_new的B方法,B会自己开一个事务,但是如果B抛异常回滚了,A还是能感知到,也回滚。1.如果使用never,因为是代理的方式处理事务,假如A有事务,调B方法,B方法还没执行,就是还没走到B,判断A有事务,B为Never,就直接报错了。3.使用nested可以实现的效果,A调B,B为nested,B的回滚不影响A,但是A如果报错回滚,B也跟着回滚。原创 2024-11-10 21:16:34 · 213 阅读 · 0 评论 -
Spring容器初始化过程
4.如何解决循环引用就很简单了 , 如果A依赖了B 并且B依赖了A , 当A初始化了B的时候, B初始化时将会从第三层引用中获取当前的提早曝光的类,从而实现了解决循环引用,并且spring的实现,还实现了多线程模式下也可以进行循环应用的逻辑。这两个类都有继承自AbstractApplication 所有的spring对象初始化的时候都会调用这个通用的类 , 整个bean初始化,容器加载相关的逻辑都是在这里面的。2.ApplicationContext是java对象管理的开端,其实现类很多。原创 2024-11-10 21:12:16 · 175 阅读 · 0 评论