大家好,欢迎来到IT知识分享网。
Spring常用配置
Bean Scope
基本概念
Scope描述的是Spring容器如何新建Bean的实例,有如下几种方式,通过@Scope注解实现。
(1)Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例。
(2)Prototype:每次调用新建一个Bean的实例。
(3)Request:Web项目中,给每一个http request请求新建一个bean实例、
(4)Session:Web项目中,给每一个http session新建一个Bean实例。
(5)GlobalSession:这个只在portal应用中有用,给每一个global http session新建一个Bean实例。
(6)在Spring Batch中还有一个Scope是使用@StepScope。
代码示例
新建一个Single的类

说明:这个类默认为Singleton,相当于@Scope(“singleton”)
新建一个Prototype类

说明:声明Scope为prototype。@Scope(“prototype”)
配置类

编写测试类运行

输出结果:

说明:Singleton模式只会创建一个Bean的实例,而prototype模式会创建多个实例。
Spring EL表达式和资源调用
基本概念
Spring EL表达式语言支持在xml和注解中使用表达式。Spring开发中经常涉及调用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们经常使用Spring的表达式语言实现资源的注入。
Spring主要在注解@Value的参数中使用表达式。
代码示例
(1)添加commons-io的jar包

(2)在bean包下新建demo.properties文件
内容可以随意定义。

(3)编写需要被注入的bean

说明:@Value(“其他类的属性”)这里是注入普通字符串。
(4)配置类


说明:注入配置文件需要使用@PropertySource指定文件地址,若使用@Value注入,则要配置一个
PropertySourcePlaceholderConfigurer的Bean,注意,@Value(“${username.a}”)使用的是$而不是#。
(5)编写测试类

运行结果:

Bean的初始化和销毁
基本概念
我们在实际开发的时候,经常会遇到在Bean使用之前或之后做些必要的操作,Spring对Bean的生命周期的操作提供了支持。使用java配置和注解配置的方法如下:
(1)Java配置方法:使用@Bean的initMethod和destroyMethod(相当于xml配置的init-method和destroy-method)。
(2)注解配置方式:利用JSR-250的@PostConstruct和@PreDestroy。
代码示例
声明一个类beanWay

声明配置类Config

编写测试类


Profile
基本概念
Profile在不同的环境中使用不同的配置提供了支持,例如开发环境下的配置和生产环境下的配置是不同的。
(1)通过设定Environment的ActiveProfiles来设定当前context需要使用的配置环境,在开发中使用@Profile注解类或者方法,达到在不同情况下选择实例化不同的Bean。
(2)通过设定jvm的spring.profiles.active参数来设置配置环境。
(3)Web项目设置在Servlet的context parameter中。(这是在web项目中配置,java项目不需要)
Servlet2.5及以下:

Servlet3.0及以上:

实现的功能
在不同的环境中使用不同的配置。
代码示例
(1)新建一个Bean

(2)新建Profile配置类

(3)运行测试

结果:

Application Event(事件)
基本概念
Spring的事件为Bean与Bean之间的消息通信提供了支持,当一个Bean处理完一个任务后,希望另外一个Bean知道并能做相应的处理,这时我们就需要让另外一个bean监听当前Bean所发送的事件。
Spring的事件需要遵循如下流程:
(1)自定义事件,继承ApplicationEvent类。
(2)定义事件监听器,实现ApplicationListener接口。
(3)使用容器(ApplicationContext接口)发布事件。
实现的功能
监听另外一个Bean所发布的消息
代码示例
(1)自定义事件
编写类并继承ApplicationEvent类

(2)创建事件监听器

(3)事件发布类

(4)配置类

(5)运行

结果:

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/182792.html