Spring
文章平均质量分 56
幺零小柒
这个作者很懒,什么都没留下…
展开
-
@Transactional的踩坑和实践
最佳实践: 1.当使用 @Transactional 的时候,都新启一个类来写,不要在同一个类中相互调用,可以避免很多坑。比如类中包含非事务方法a和事务方法b,a中调用b,b的事务就不会生效,都是代理的问题,aspectJ 也有很多类似的坑。 2.当外层事务方法调用内层事务方法,内层事务方法传播属性是 REQUIRED 时,内层方法抛出异常,外层方法不管 catch 不 catch 都会回滚; 3...原创 2020-01-02 14:50:51 · 710 阅读 · 2 评论 -
(Spring In Action)bean注入类型的限定
@Primary:首选bean ①当一个类型的类有多个时,@Autowired指定bean就会抛出异常-> org.springframework.beans.factory.NoUniqueBeanDefinitionException 比如同一个Dessert接口,有三个实现类:Cake,Cookies,IceCream public interface Desser...原创 2018-03-29 21:49:55 · 731 阅读 · 0 评论 -
(Spring In Action)bean的name和id
人可以有很多称呼,但是你的定位符只能有一个,比如你可以叫小a小b小c,但是你的身份证号码是唯一的。bean也一样,bean的id是唯一的,名字可以有很多,下面分析一下各种情况。 ①*bean既没有指定id,也没有指定name,则使用“全限定类名#编号*”当做类的id;如果有多个相同类的bean(同样是没有手动指定id和name的),则编号会从0开始递增,“全限定类名#0”的bean享受name为...原创 2018-03-30 12:57:40 · 1508 阅读 · 0 评论 -
IOC容器启动阶段
IOC容器要为我们提供服务需要经过两个阶段: ①容器启动阶段 ②bean实例化阶段 容器启动阶段主要是在真正构造bean前,为构造工作提供图纸。就比如<bean id="..." class="...">...</bean>,这是我们人手动写的,ioc要把它转为bean的图纸:也就是转化为一个BeanDefinition,然后把BeanDefinition注册到Bea...原创 2018-04-16 21:34:33 · 667 阅读 · 0 评论 -
(Spring In Action)bean注入基础知识
Spring的使命:简化Java开发。 Spring为简化Java开发采取的4个关键策略: ①基于POJO的轻量级和最小侵入性编程; ②通过依赖注入和面向接口实现松耦合; ③通过切面和惯例进行声明式编程; ④通过切面和模板减少样板式代码; Spring容器管理bean对象的生命周期和协作关系,Spring通过上下文对象将你对bean的配置加载进Spring容器,比如你在JavaConf...原创 2018-03-29 13:03:46 · 654 阅读 · 0 评论 -
AOP相关概念漫谈
可以把AOP看成是工厂机器织布,在一块白布上绣花纹。 先说几个概念: ①JoinPoint:在Java的世界里,我把它理解成一个一个的方法,百分之80的代码都是在方法中执行的,当然还有百分之20的类似在代码块中的代码。当然这百分之80的就可以满足大多数需求了。就相当于织布中的绣花纹的地方,你要绣花纹的地方就是JoinPoint。 ②PointCut:我把它理解成JoinPoint的定义,意思...原创 2018-07-04 17:03:35 · 474 阅读 · 1 评论 -
Spring模板模式(Template+Callback)
之前在看《Spring揭秘》的时候,发现了Spring处理数据库的精髓类JdbcTemplate,它使用了模板的设计模式,即将流程固定化,比如数据库连接的获取,数据库连接的关闭等,然后将变化的部分交由子类或者回调函数实现。 以前接触的都是抽象父类声明流程,流程中包含抽象函数,子类继承父类并实现父类的抽象函数,这样父类的流程这个流程是不变的,变的只是子类的抽象方法的实现。但是这个的基础是继承,如果...原创 2018-08-16 17:56:41 · 5006 阅读 · 0 评论