1.Bean的Scope
Spring的Scope有以下几种,通过@Scope注解来实现
-
Singleton 一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例
-
Prototype 每次调用新建一个Bean的实例
-
Request Web项目中,每一个http request新建一个Bean实例
-
Session Web项目中,每一个http session新建一个Bean实例
-
GlobalSession 这个只在portal应用中有用,给每一个global http session新建一个Bean实例
2.Spring EL和资源调用
对涉及调用各种资源的情况,如普通文件、网址、配置文件、系统环境变量等,可以使用Spring的表达式语言实现资源的调用
在注解@Value使用表达式
-
注入普通字符
-
注入操作系统属性
-
注入表达式运算结果
-
注入其他Bean的属性
-
注入文件内容
-
注入网址内容
-
注入属性文件
3.Bean的初始化和销毁
-
Java配置方式 使用@Bean的initMethod和destroyMethod (相当于xml配置的init-method和desroy-method)
-
注解方式 使用JSR-250的@PostConstruct和@PreDestroy
相应的pom引用
执行过程会先执行默认构造函数,然后初始化方法init-method,销毁时执行destroy-method
4.Profile
Profile为在不同环境下使用不同的配置提供了支持,如开发环境和生产环境的配置文件不一样。
通过设定Environment的ActiveProfile来设定当前context需要是用的配置环境
5.事件(ApplicationEvent)
Spring事件(ApplicationEvent)为Bean与Bean之间的消息通信提供了支持。当一个Bean处理完任务后,希望另一个Bean知道并能做相应的处理,这时我们就需要另外一个Bean监听当前Bean发送的事件
Spring事件遵循的流程如下
-
自定义事件,继承ApplicationEvent
-
定义事件监听器,实现ApplicationListener
-
使用容器发布事件
}
可以实现多处订阅,实现收到消息后不同的逻辑处理