只需添加init-method和destroy-method参数
<?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">
<bean id="userDao" class="com.example.demo.dao.Impl.UserDaoImpl" init-method="init" destroy-method="destory"></bean>
</beans>
对象代码
Dao接口
package com.example.demo.dao;
public interface UserDao {
public void save();
}
Dao接口实现类
package com.example.demo.dao.Impl;
import com.example.demo.dao.UserDao;
public class UserDaoImpl implements UserDao {
//构造方法,spring通过无参构造创建对象
public UserDaoImpl() {
System.out.println("UserDaoImpl被创建了");
}
//初始化方法,用于申请资源
public void init(){
System.out.println("初始化中");
}
//销毁方法,用于返还资源
public void destory(){
System.out.println("销毁中");
}
@Override
public void save() {
System.out.println("hello");
}
}
运行代码
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) app.getBean("userDao");
//单元测试需要加入下面这行代码,因为运行完单元测试之后,单元测试就帮你销毁了,比userDao的销毁方法优先,如果没有下面这行代码,就看不到自定义销毁方法的执行结果
((ClassPathXmlApplicationContext)app).close();