获取Spring容器对象
- 实现BeanFactoryAware接口,重写setBeanFactory方法,从中可获取到Spring容器对象。
- 实现ApplicationContextAware接口,重写setApplicationContext方法也可以获取到Spring容器对象。
- 实现ApplicationListener接口,接口泛型为ContextRefreshedEvent类,重写onApplicationEvent方法获取Spring容器对象。
功能强大的Aware接口
初始化Bean
Spring提供了3种初始化Bean的方法
- xml中指定init-method方法
- 使用@PostConstruct方法
- 实现InitializingBean接口,重写afterPropertiesSet方法完成初始化功能
自定义Scope
Spring默认支持的Scope有两种:singleton、prototype
Spring Web对Scope进行了扩展,增加了:
- RequestScope:同一次请求从Spring容器中获取的bean都是同一个对象。
- SessionScope:同一个会话从Spring容器中获取的bean是同一个对象。
自定义Scope需要实现Scope接口,然后将自定义的Scope注入到Spring容器中
FactoryBean和BeanFactory
- BeanFactory:Spring容器的顶级接口,管理bean的工厂。
- FactoryBean:并非普通的工厂bean,隐藏了实例化一些复杂Bean的细节。
通过实现FactoryBean接口可以自定义FactoryBean
自定义类型转换
Spring目前支持3种类型转换器:
- Converter<S,T>:将S类型对象转为T类型对象
- ConverterFactory<S,R>:将S类型对象转为R类型对象及子类对象
- GenericConverter:支持多个source和目标类型的转化,同时提供了source和目标类型的上下文,通过上下文可以实现基于属性上的注解或信息来进行类型转换。
来源:spring中这些能升华代码的技巧,可能会让你爱不释手
Spring实用技巧(一)
原文:https://www.cnblogs.com/z-dk/p/14318066.html