主页 > IT业界  > 

SpringIoC配置(xml+组件类的生命周期方法)

SpringIoC配置(xml+组件类的生命周期方法)

文末有本篇文章对应的项目源码文件可供下载

生命周期方法概念

我们可以在组件类中定义一个或者两个方法,然后当Spring IoC容器实例化和销毁组件类对象的时候进行自动调用.我们定义的方法就叫做组件的生命周期方法.

类似于Servlet的init/destroy方法,Tomcat可以在创建Servlet时自动执行Servlet的init方法,在销毁Servlet时自动执行Servlet的destroy方法,以此来完成Servlet的初始化和释放资源等业务逻辑。

0.配置思路

1.搭建好项目之后,编写Customer.java组件类,并在组件类中定义init方法和clear方法.

2.配置applicationContext.xml文件,配置组件类信息

3.编写SpringTest.java,进行测试.

1.配置pom.xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>6.1.14</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.3.1</version> <scope>test</scope> </dependency> </dependencies> 2.编写Customer.java自定义组件类 public class Customer { /** * 组件初始化方法 */ public void init() { System.out.println("Initializing Customer"); } /** * 组件销毁方法 */ public void clear() { System.out.println("Clearing Customer"); } }

初始化方法与销毁方法的命名是自定义的,但是在其他方面有一定的要求:

必须是public必须是void必须是无参数的 3.编写applicationContext.xml文件,配置组件类信息 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// .springframework.org/schema/beans" xmlns:xsi="http:// .w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:// .springframework.org/schema/beans http:// .springframework.org/schema/beans/spring-beans.xsd"> <!-- 配置自定义组件类--> <!-- init-method: 定义组件初始化函数--> <!-- destroy-method: 定义组件销毁函数--> <bean id="customer" class="com.my.ssm.Customer" init-method="init" destroy-method="clear"/> </beans> 4.编写SpringTest.java测试文件 public class SpringTest { @Test public void test1() { // 创建Spring IoC容器,创建完成就会自动进行组件类对象的实例化 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); // 该方法是为了Spring IoC容器正常结束 context.close(); } }

我们可以发现,我们在程序中调用了context对象的close()方法,该方法是为了正常关闭Spring IoC容器.

在Spring IoC容器正常结束的情况下,Spring IoC容器才会去调用组件类对象的destroy-method所对应的销毁方法;

在Spring IoC容器异常关闭的情况下,因为Spring IoC异常关闭了,所以还没有来得及调用组件类对象的destroy-method所对应的销毁方法,因此销毁方法是不执行的,

感兴趣的朋友可以测试下,将该语句删除之后,看是否还会执行组件类对象所对应的销毁方法.

close方法不是ApplicationContext这个接口的方法,而是AbstractApplicationContext类的方法,对于ClassPathXmlApplicationContext这个Spring IoC容器的是实现类,它是继承AbstractApplicationContext类,所以我们可以通过ClassPathXmlApplicationContext类对象来去调用close方法,但是通过ApplicationContext类对象是无法调用close方法的.

5.测试结果

本篇文章的项目源码文件,可供下载学习

标签:

SpringIoC配置(xml+组件类的生命周期方法)由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringIoC配置(xml+组件类的生命周期方法)