Spring框架基础知识-第五节内容(Spring常用配置)

Spring框架基础知识-第五节内容(Spring常用配置)Spring 常用配置 Bean Scope 基本概念 Scope 描述的是 Spring 容器如何新建 Bean 的实例 有如下几种方式 通过 Scope 注解实现 1 Singleton 一个 Spring 容器中只有一个 Bean 的实例 此为 Spring 的默

大家好,欢迎来到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的类

Spring框架基础知识-第五节内容(Spring常用配置)

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

新建一个Prototype类

Spring框架基础知识-第五节内容(Spring常用配置)

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

配置类

Spring框架基础知识-第五节内容(Spring常用配置)

编写测试类运行

Spring框架基础知识-第五节内容(Spring常用配置)

输出结果:

Spring框架基础知识-第五节内容(Spring常用配置)

说明:Singleton模式只会创建一个Bean的实例,而prototype模式会创建多个实例。

Spring EL表达式和资源调用

基本概念

Spring EL表达式语言支持在xml和注解中使用表达式。Spring开发中经常涉及调用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们经常使用Spring的表达式语言实现资源的注入

Spring主要在注解@Value参数中使用表达式

代码示例

(1)添加commons-io的jar包

Spring框架基础知识-第五节内容(Spring常用配置)

(2)在bean包下新建demo.properties文件

内容可以随意定义。

Spring框架基础知识-第五节内容(Spring常用配置)

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

Spring框架基础知识-第五节内容(Spring常用配置)

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

(4)配置类

Spring框架基础知识-第五节内容(Spring常用配置)

Spring框架基础知识-第五节内容(Spring常用配置)

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

(5)编写测试类

Spring框架基础知识-第五节内容(Spring常用配置)

运行结果:

Spring框架基础知识-第五节内容(Spring常用配置)

Bean的初始化和销毁

基本概念

我们在实际开发的时候,经常会遇到在Bean使用之前或之后做些必要的操作,Spring对Bean的生命周期的操作提供了支持。使用java配置和注解配置的方法如下:

(1)Java配置方法:使用@Bean的initMethod和destroyMethod(相当于xml配置的init-method和destroy-method)。

(2)注解配置方式:利用JSR-250的@PostConstruct@PreDestroy

代码示例

声明一个类beanWay

Spring框架基础知识-第五节内容(Spring常用配置)

声明配置类Config

Spring框架基础知识-第五节内容(Spring常用配置)

编写测试类

Spring框架基础知识-第五节内容(Spring常用配置)

Spring框架基础知识-第五节内容(Spring常用配置)

Profile

基本概念

Profile在不同的环境中使用不同的配置提供了支持,例如开发环境下的配置和生产环境下的配置是不同的。

(1)通过设定Environment的ActiveProfiles来设定当前context需要使用的配置环境,在开发中使用@Profile注解类或者方法,达到在不同情况下选择实例化不同的Bean。

(2)通过设定jvm的spring.profiles.active参数来设置配置环境。

(3)Web项目设置在Servlet的context parameter中。(这是在web项目中配置,java项目不需要)

Servlet2.5及以下:

Spring框架基础知识-第五节内容(Spring常用配置)

Servlet3.0及以上:

Spring框架基础知识-第五节内容(Spring常用配置)

实现的功能

在不同的环境中使用不同的配置。

代码示例

(1)新建一个Bean

Spring框架基础知识-第五节内容(Spring常用配置)

(2)新建Profile配置类

Spring框架基础知识-第五节内容(Spring常用配置)

(3)运行测试

Spring框架基础知识-第五节内容(Spring常用配置)

结果:

Spring框架基础知识-第五节内容(Spring常用配置)

Application Event(事件)

基本概念

Spring的事件为Bean与Bean之间的消息通信提供了支持,当一个Bean处理完一个任务后,希望另外一个Bean知道并能做相应的处理,这时我们就需要让另外一个bean监听当前Bean所发送的事件

Spring的事件需要遵循如下流程:

(1)自定义事件,继承ApplicationEvent类

(2)定义事件监听器,实现ApplicationListener接口

(3)使用容器(ApplicationContext接口)发布事件

实现的功能

监听另外一个Bean所发布的消息

代码示例

(1)自定义事件

编写类并继承ApplicationEvent类

Spring框架基础知识-第五节内容(Spring常用配置)

(2)创建事件监听器

Spring框架基础知识-第五节内容(Spring常用配置)

(3)事件发布类

Spring框架基础知识-第五节内容(Spring常用配置)

(4)配置类

Spring框架基础知识-第五节内容(Spring常用配置)

(5)运行

Spring框架基础知识-第五节内容(Spring常用配置)

结果:

Spring框架基础知识-第五节内容(Spring常用配置)

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

(0)
上一篇 2025-07-08 10:20
下一篇 2025-07-08 10:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信