Spring(二、配置文件)

简介: Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。Bean的实例化时机当Spring核心文件被加载时,实例化配置的Bean实例。​对象销毁当对象长时间不用时,被Java的垃圾回收器回收了。​对象创建当应用加载,创建容器时,对象就被创建了。​对象销毁当应用卸载,销毁容器时,对象就被销毁了。​对象创建当使用对象时,创建新的对象实例。

Spring配置文件

Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。

1631529887695.png

1.Bean标签基本配置

  • 用于配置对象交由Spring 来创建。
  • 默认情况下它调用的是类中的无参构造函数。
  • 如果没有无参构造函数则不能创建成功。
  • 基本属性:
  • id:Bean实例在Spring容器中的唯一标识   (不能重复
  • class:Bean的全限定名称
<!-- 创建applicationContext.xml -->
<bean id="userDao" class="com.xmp.dao.impl.UserDaoImpl">
</bean>

2.Bean标签范围配置

scope:指对象的作用范围,取值如下:

取值范围 说明
singleton 默认值,单例的 (默认
prototype 多例的
request WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中
session WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中
global session WEB 项目中,应用在 Portlet 环境,如果没有 Portlet 环境那么globalSession 相当 于 session

1)当scope的取值为singleton时

  • Bean的实例化个数:1个
  • Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例
  • Bean的生命周期:

对象创建:当应用加载,创建容器时,对象就被创建了

对象运行:只要容器在,对象一直活着

对象销毁:当应用卸载,销毁容器时,对象就被销毁了

  • 测试

applicationContext.xml      (scope="singleton")

 

<!-- 创建applicationContext.xml -->
<bean id="userDao" class="com.xmp.dao.impl.UserDaoImpl" scope="singleton"> <!-- singleton单例 默认-->
</bean>

测试,打印实例化的对象发现一样

  @Test
    //测试scope的作用域
    public void test() {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao1 = (UserDao) context.getBean("userDao");
        UserDao userDao2 = (UserDao) context.getBean("userDao");
        System.out.println(userDao1);
        System.out.println(userDao2);
    }

测试结果:

image-20220729171249783.png

2)当scope的取值为prototype时

  • Bean的实例化个数:多个
  • Bean的实例化时机:当调用getBean()方法时实例化Bean
  • Bean的生命周期:

对象创建:当使用对象时,创建新的对象实例

对象运行:只要对象在使用中,就一直活着

对象销毁:当对象长时间不用时,被 Java 的垃圾回收器回收了

  • 测试

当测试scope的作用域改为prototype时:

image-20220729171446168.png

3.Bean生命周期配置

3.1 init-method:

指定类中的初始化方法名称

//初始化方法,在实例化对象的时候调用
public void init() {
    System.out.println("UserDaoImpl init ......");
}

3.2 destroy-method:

指定类中销毁方法名称

//销毁方法,在销毁对象的时候调用
    public void destroy() {
        System.out.println("UserDaoImpl destroy ......");
    }

(1)关于Spring中对bean生命周期控制提供了两种方式:

  • 在配置文件中的bean标签中添加init-methoddestroy-method属性
  • 类实现InitializingBeanDisposableBean接口,这种方式了解下即可。

<!-- 创建applicationContext.xml -->
    <bean id="userDao" 
    class="com.xmp.dao.impl.UserDaoImpl" 
    scope="prototype"       
    init-method="init"          (告诉Spring执行该方法)
    destroy-method="destroy"    (告诉Spring执行该方法)
    >
 </bean>

image-20220729172805455.png

(2)对于bean的生命周期控制在bean的整个生命周期中所处的位置如下:

  • 初始化容器
  • 1.创建对象(内存分配)
  • 2.执行构造方法
  • 3.执行属性注入(set操作)
  • ==4.执行bean初始化方法==
  • 使用bean
  • 1.执行业务操作
  • 关闭/销毁容器
  • ==1.执行bean销毁方法==

(3)关闭容器的两种方式:

  • ConfigurableApplicationContext是ApplicationContext的子类
  • close()方法
  • registerShutdownHook()方法

4.Bean实例化三种方式

  • 无参构造方法实例化(常用)
  • 工厂静态方法实例化
<!--静态工厂-->
<bean id="userDaoFactory" 
          class="com.xmp.Factory.StaticFactory" factory-method="getUserDao">
</bean>
  • 工厂实例方法实例化   FactoryBean(实用)


<!--实例工厂-->
<bean id="Factory" class="com.xmp.Factory.DynamicFactory"></bean>
<bean id="userDaoFactoryDynamic" factory-bean="Factory" factory-method="getUserDao"></bean>


相关文章
|
5月前
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
966 0
|
2月前
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
113 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
2月前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
2月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
100 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
3月前
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
|
4月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
65 0
|
4月前
|
XML Java 数据库连接
深入解析 Spring 配置文件:从基础到高级
【8月更文挑战第3天】Spring配置文件是构建与管理Spring应用的核心,它涵盖了从基础到高级的各种配置技巧。基础配置采用`.xml`格式定义Bean及其依赖;中级配置包括设置Bean作用域及引入属性文件;高级配置则涉及AOP、事务管理和与其他框架的整合。熟练掌握这些配置能帮助开发者构建出更为灵活且易维护的应用系统。
|
5月前
|
存储 安全 Java
Spring Boot中的配置文件加密
Spring Boot中的配置文件加密
|
7月前
|
Java 容器 Spring
Spring的加载配置文件、容器和获取bean的方式
Spring的加载配置文件、容器和获取bean的方式
57 3
Spring的加载配置文件、容器和获取bean的方式
|
6月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
57 1