![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 92
liuhmmjj
对计算机编程很有兴趣
展开
-
spring注入ApplicationContext对象的几种方式
@Configuration注解所注释的配置类可通过构造函数注入ApplicationContext代码:public interface AA { int f();}public class BB implements AA { @Override public int f() { return 6; }}@C...原创 2020-03-23 10:07:15 · 8255 阅读 · 0 评论 -
springboot1.X 和2.X 关于Bean名字相同时覆盖问题
在2版本之前的版本,项目中有两个相同名字的bean是可以启动成功的,但是会有覆盖问题但是在2.X版本的时候会报错:could not be registered. A bean with that name has already been defined in class path resource这时候解决办法可以在配置文件中添加:spring.main.allow-bean-...原创 2019-12-12 19:53:31 · 7185 阅读 · 0 评论 -
spring生命周期
下图为BeanFactory中bean生命周期的完整过程步骤:1.当调用者通过getBean(beanName)向容器请求Bean时,如果容器注册了org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor接口,在实例bean之前,将调用该接口的postProcessBefo...原创 2019-09-19 14:32:47 · 6072 阅读 · 0 评论 -
SpringAOP源码分析之expose-proxy="true"
aspectj-autoproxy标签注册AspectJAutoProxyBeanDefinitionParserpublic class AopNamespaceHandler extends NamespaceHandlerSupport { public AopNamespaceHandler() { } public void init() { ...原创 2019-09-06 11:42:31 · 8305 阅读 · 0 评论 -
spring @Primary注解源码分析
当一个接口有2个不同实现时,使用@Autowired注解时会报org.springframework.beans.factory.NoUniqueBeanDefinitionException异常信息因为@Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类。解决方案:1.用@Qualifier这个注解来解决问题2.@...原创 2019-09-05 11:48:47 · 6312 阅读 · 1 评论 -
MyBatis Spring 集成,mapper接口@repository有时候却不用写的原因(MyBatis Spring 集成源码解析)
之前看了Spring源码之后,对Spring+MyBatis项目有个疑问,Dao层的mapper接口上@repository有时候却不用写,难道mapper包扫描生成代理类发生在service层的依赖注入之前吗?要不然service层的类@Autowired mapper接口时会找不到实例啊?后面读了MyBatis Spring 集成源码MapperScannerConfigurer后解决了疑...原创 2018-09-03 15:55:27 · 13373 阅读 · 2 评论 -
Spring源码解析:Bean实例的创建与初始化
Spring 提供了多种重载和覆盖的 getBean 方法,当我们在执行 beanFactory.getBean("myBean") 时,我们实际上是在调用 AbstractBeanFactory 中的实现:public Object getBean(String name) throws BeansException { return this.doGetBean(name, nu...转载 2018-09-04 19:28:00 · 14089 阅读 · 3 评论 -
Spring自定义命名空间
Spring在解析xml文件中的标签的时候会区分当前的标签是四种基本标签(import、alias、bean和beans)还是自定义标签,如果是自定义标签,则会按照自定义标签的逻辑解析当前的标签。另外,即使是bean标签,其也可以使用自定义的属性或者使用自定义的子标签。本文将对自定义标签和自定义属性的使用方式进行讲解,并且会从源码的角度对自定义标签和自定义属性的实现方式进行讲解。Spring框...原创 2018-07-30 14:46:52 · 6872 阅读 · 2 评论 -
FactoryBean的作用
Spring 中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean 即 FactoryBean。FactoryBean跟普通Bean不同,其返回的对象不是指定类的一个实例,而是该FactoryBean的getObject方法所返回的对象。创建出来的对象是否属于单例由isSingleton中的返回决定。一般情况下,Spring通过反射机制利用<bean>的class属性指...原创 2018-07-23 14:24:16 · 18453 阅读 · 2 评论 -
@Transational事务注解未生效的原因探究
现象描述代码简化如下:@Controllerclass XService { @Autowired private YService yService;public void doOutside(){ this.doInside(); //或者直接doInside();效果是一样的 } @Transactional private ...原创 2018-07-09 11:32:31 · 7509 阅读 · 1 评论 -
Spring 常用接口之 InitializingBean ,DisposableBean 接口
InitialingBean和DisposableBeanInitialingBean是一个接口,提供了一个唯一的方法afterPropertiesSet()。DisposableBean也是一个接口,提供了一个唯一的方法destory()。这两个接口是一组的,功能类似,因此放在一起:前者顾名思义在Bean属性都设置完毕后调用afterPropertiesSet()方法做一些初始化的工作,后者在B...原创 2018-06-29 15:45:27 · 11715 阅读 · 0 评论