07 2020 档案

摘要:前面介绍了事务的使用方法,开启事务可以通过@EnableTransactionManagement或者<tx:annotation-driven />,前面说过spring的事务实现是基于AOP实现的,下面分析下spring事务的实现原理 @EnableTransactionManagement 和 阅读全文
posted @ 2020-07-21 22:04 光头用沙宣 阅读(173) 评论(0) 推荐(0) 编辑
摘要:本文使用的是spring + mybatis,数据库用的是MySql,说事务的传播行为之前先介绍一个SSM开发中很好用的一个IDEA插件 Easy Code Easy Code插件 该插件用来基于数据库表来生成开发中用到的entiry类、mapper接口、mapper.xml等代码,免去了手工定义的 阅读全文
posted @ 2020-07-21 15:24 光头用沙宣 阅读(248) 评论(0) 推荐(0) 编辑
摘要:想要了解AOP原理,先要了解以下知识: 1、JDK动态代理、CGLIB动态代理 前面一篇已经说过 2、BeanPostProcessor、InstantiationAwareBeanPostProcessor IOC启动总结过 3、@Import注解 和xml配置中<import/>标签功能一致,用 阅读全文
posted @ 2020-07-16 15:39 光头用沙宣 阅读(453) 评论(0) 推荐(0) 编辑
摘要:AOP能够在应用程序指定位置、指定时机,植入指定功能,并且不影响原程序的功能; 最简单的而举例:在已有应用程序的所有方法调用前后分别添加日志;我们肯定不能修改程序,在每个方法前后添加日志,这样做工作量大,容易遗漏,更重要的是违背了“开闭原则” AOP面向切面编程不是spring框架独有的,其他比较著 阅读全文
posted @ 2020-07-16 11:47 光头用沙宣 阅读(178) 评论(0) 推荐(0) 编辑
摘要:spring AOP内部的原理是动态代理,spring AOP内部使用了两种代理方式:JDK动态代理和CGLIB动态代理 JDK动态代理 JDK动态代理最基本要素:接口、实现接口的类、实现了InvocationHandler接口的类、lang包下的Proxy类 public interface My 阅读全文
posted @ 2020-07-15 17:09 光头用沙宣 阅读(177) 评论(0) 推荐(0) 编辑
摘要:FactoryBean是spring提供的一个接口,交由用户自己实现bean实例化方法,接口如下: 实例: public class FactoryBeanInfo implements BeanNameAware { private int id; private String name; pri 阅读全文
posted @ 2020-07-14 16:44 光头用沙宣 阅读(209) 评论(0) 推荐(0) 编辑
摘要:先说一下循环依赖常见问题的个人理解: 1、spring只能解决属性或者setter注入场景下的循环依赖?? 我理解不是,在构造器注入和属性注入混合场景下也是能够解决的 2、spring解决循环依赖采用了三级缓存,之所以用三级缓存是为了提升效率?? 我理解三级缓存和二级缓存效率相差无几,只不过为了解决 阅读全文
posted @ 2020-07-14 14:58 光头用沙宣 阅读(287) 评论(0) 推荐(0) 编辑
摘要:默认情况下,单个配置文件中存在id或者name相同的bean定义,spring解析时会报错;不同配置文件中存在id或者name相同的bean定义,后面加载的bean定义会覆盖前面的bean定义 1、单个配置文件中存在id或者name相同的bean定义 <bean class="com.demo.be 阅读全文
posted @ 2020-07-09 15:41 光头用沙宣 阅读(7065) 评论(1) 推荐(0) 编辑
摘要:画了一个很丑,帮助记忆的流程图。。。。。 阅读全文
posted @ 2020-07-08 22:27 光头用沙宣 阅读(300) 评论(0) 推荐(0) 编辑
摘要:spring提供了两个容器级生命周期接口:InstantiationAwareBeanPostProcessor、BeanPostProcessor(其实BeanFactoryPostProcessor也算是容器级生命周期接口,前面已经介绍过了) 该接口用于在bean实例化前后,以及设置属性前对be 阅读全文
posted @ 2020-07-08 19:01 光头用沙宣 阅读(270) 评论(0) 推荐(0) 编辑
摘要:spring提供的Bean级生命周期接口有BeanNameAware、BeanFactoryAware、InitializingBean、DisposableBean; 1、BeanNameAware和BeanFactoryAware BeanNameAware接口用于为实现了该接口的Bean设置B 阅读全文
posted @ 2020-07-07 21:15 光头用沙宣 阅读(264) 评论(0) 推荐(0) 编辑
摘要:接着AbstractApplicationContext.refresh方法:initApplicationEventMulticaster,该方法用来初始化事件广播器,流程如下: protected void initApplicationEventMulticaster() { // 获取Bea 阅读全文
posted @ 2020-07-07 14:40 光头用沙宣 阅读(193) 评论(0) 推荐(0) 编辑
摘要:ApplicationContext的refresh方法的下一个方法为:initMessageSource,用于初始化国际化信息 spring加载国际化资源文件的接口类MessageSource,spring提供了如下两个类: org.springframework.context.support. 阅读全文
posted @ 2020-07-06 20:46 光头用沙宣 阅读(302) 评论(0) 推荐(0) 编辑
摘要:接着上一篇,继续总结;本章节总结refresh方法的invokeBeanFactoryPostProcessors方法 在这之前先说一些和该方法相关的东西 1、BeanFactoryPostProcessor Bean工厂后置处理器,一般用来在BeanFactory创建并标准化之后实例化之前对Bea 阅读全文
posted @ 2020-07-06 17:12 光头用沙宣 阅读(178) 评论(0) 推荐(0) 编辑
摘要:这张图是最最简单的处理流程图,其中还省略了初始化国际化、事件广播器等流程;下面参照ClassPathXmlApplicationContext源码,记录下IOC容器启动的大致流程: 1、ClassPathXmlApplicationContext构造器 public ClassPathXmlAppl 阅读全文
posted @ 2020-07-03 18:12 光头用沙宣 阅读(235) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示