Spring源码解析

Spring源码解析_Spring组件注册

2018-08-29  本文已影响0人  猴小马_spancer

参考资料:<<Spring源码深度解析>>

一、给容器注册组件的三种方式:

1.默认获取到的是工厂bean调用 getObject 创建的对象
2.要获取工厂bean本身,需要给 id 前加一个 " & " 标识

二、 注解使用

1、配置文件注解@Configuration/@Bean:

2、包扫描注解@ComponentScan以及包扫描规则

@Controller
@Service
@Compnent
@Repository
以上标签均可以在创建的相应类上使用

FilterType.ANNOTATION :指定过滤注解的组件
FilterType.ASSIGNABLE_TYPE:按照指定的类型
FilterType.CUSTOM:自定义过滤规则,需要实现 TypeFilter 接口

3、@Scope注解的使用

session:同一次session创建一个实例
request:同一个请求创建一个实例
prototype:多实例,ioc容器启动时候不会调用方法创建创建对象,而是在
每次获取的时候才会调用方法创建对象
singleton:单实例,ioc容器启动的时候就会调用方法创建对象放入ioc容器中,以后每次获取就直接从容器中拿


4、@Lazy懒加载

5、 @Conditional 按照条件给容器中注册bean

6、@Import:快速的导入组件,id默认是组件的全类名

7、FactoryBean工厂bean注入spring容器中

T getObject() 方法,返回由FactoryBean创建的bean实例,如果isSingleton()返回true,则该实例会放到Spring容器中单实例缓存池中;
boolean isSingleton():返回由BeanFactory创建的bean的作用域是singleton还是prototype;
Class<T> getObjectType():返回由FactotyBean创建的bean的类型。

上一篇下一篇

猜你喜欢

热点阅读