Spring -- Spring配置文件详解(Bean标签的基本配置(id,class)/ 范围配置 / 不同范围时的对象的创建时期 / Bean生命周期配置(生命周期方法) )
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring -- Spring配置文件详解(Bean标签的基本配置(id,class)/ 范围配置 / 不同范围时的对象的创建时期 / Bean生命周期配置(生命周期方法) )相关的知识,希望对你有一定的参考价值。
01:Spring配置文件详解(Bean标签的基本配置(id,class)/ 范围配置 / 不同范围时的对象的创建时期 / Bean生命周期配置(生命周期方法) )
02: Spring配置文件详解(Bean实例化的三种方式、IoC(控制反转) 与 DI(依赖注入)、依赖注入详解)
03:Spring配置文件详解(Bean的依赖注入的数据类型(基本类型、引用类型、集合类型))
04: Spring配置文件详解(引入其他配置文件(分模块开发)、小结)
1. Spring配置文件详解
1.1 Bean标签的基本配置
示例:
<!-- id 可以随意取 但必须唯一; class对于Spring IOC 要管理的类-->
<bean id="userDao" class="com.tian.dao.impl.UserDaoImpl"/>
1.2 Bean标签范围配置
示例:
<!-- 多例的-->
<bean id="userDao" class="com.tian.dao.impl.UserDaoImpl" scope="prototype"/>
1.3 Bean标签的不同范围时 对象的创建时期
小结:
- prototype:当调用getBean()方法时实例化Bean
- singleton:当Spring核心文件被加载时,实例化配置的Bean实例
1.4 Bean生命周期配置
1.4.1 示例代码
不指定生命周期方法:
- 导入Spring开发的基本包坐标(依赖)
pom.xml
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.3</version>
</dependency>
</dependencies>
- 编写Dao接口和实现类
UserDao.java
package com.tian.dao;
public interface UserDao {
void save();
}
UserDaoImpl
package com.tian.dao.impl;
import com.tian.dao.UserDao;
public class UserDaoImpl implements UserDao {
public UserDaoImpl() {
System.out.println("User 创建成功");
}
@Override
public void save() {
System.out.println("Save Running...");
}
/**
* 初始化方法
*/
void init() {
System.out.println("User 初始化成功");
}
/**
* 销毁
*/
void destroy() {
System.out.println("User 销毁成功");
}
}
- 创建Spring核心配置文件
applicationContext.xml
- 在Spring 配置文件中配置UserDaolmpl
applicationContext.xml 这个名字可以随意取,但一般取这个名字。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- id 可以随意取 ; class对于Spring IOC 要管理的类-->
<bean id="userDao" class="com.tian.dao.impl.UserDaoImpl"/>
</beans>
- 测试代码
Test.java
package com.tian;
import com.tian.dao.impl.UserDaoImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
//解析beans.xml文件 , 生成管理相应的Bean对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//getBean : 参数即为spring配置文件中bean的id .
UserDaoImpl user = (UserDaoImpl) context.getBean("userDao");
user.save();
}
}
运行结果:
配置文件指定生命周期方法:
applicationContext.xml
<!-- init-method: 指定初始化方法 ; destroy-method: 指定销毁方法-->
<bean id="userDao" class="com.tian.dao.impl.UserDaoImpl" init-method="init" destroy-method="destroy"/>
测试代码:
package com.tian;
import com.tian.dao.impl.UserDaoImpl;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
//解析beans.xml文件 , 生成管理相应的Bean对象
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//getBean : 参数即为spring配置文件中bean的id .
UserDaoImpl user = (UserDaoImpl) context.getBean("userDao");
user.save();
// 销毁容器:这样容器中的单例对象(singleton)也会跟着销毁
context.close();
}
}
运行结果:
以上是关于Spring -- Spring配置文件详解(Bean标签的基本配置(id,class)/ 范围配置 / 不同范围时的对象的创建时期 / Bean生命周期配置(生命周期方法) )的主要内容,如果未能解决你的问题,请参考以下文章