方法init-method和方法destroy-method是spring框架的特性,这是绑定方法init-method在类的构造函数调用后被调用。通过名称分析方法destroy-method应该是该对象在销毁前被调用。测试代码如下:
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">
<!-- 设置bean字段“init-method”,字段“destroy-method” -->
<bean id="userService01"
class="com.itheima.service.impl.UserService01Impl"
init-method="init000"
destroy-method="destroyABC">
</bean>
</beans>
UserService
package com.itheima.service;
/**
* @copyright 2003-2024
* @author qiao wei
* @date 2024-07-05
* @version 1.0
* @brief
* @history name
* date
* brief
*/
public interface UserService {
}
UserService01Impl
package com.itheima.service.impl;
import com.itheima.service.UserService;
/**
* @copyright 2003-2024
* @author qiao wei
* @date 2024-07-29
* @version 1.0
* @brief 绑定文件beans.xml的字段init-method,字段destroy-method,测试调用该方法。
* @history name
* date
* brief
*/
public class UserService01Impl implements UserService {
public UserService01Impl() {
System.out.println("=============调用UserService01Impl构造函数================");
}
/**
* @author qiao wei
* @brief 绑定bean的字段init,名称可以自己随便命名。
* @param
* @return
* @throws
* @history name
* date
* brief
*/
public void init000() {
System.out.println("类UserServiceImpl01的方法init、、、、、、、、、、、、、、、、、、、、、、、、、、、、、");
}
public void destroyABC() {
System.out.println("类UserServiceImpl01的方法destroy***********************************************");
}
}
测试代码:
package com.itheima.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.itheima.dao.UserDao;
import com.itheima.dao.impl.UserDaoImpl;
import com.itheima.service.UserService;
/**
* @copyright 2003-2024
* @author qiao wei
* @date 2024-07-18
* @version 1.0
* @brief ApplicationContext在配置文件加载时,实例化bean。BeanFactory在首次调用方法getBean时实例化bean。
* @history name
* date
* brief
*/
public class ApplicationContextTest {
public static void main(String[] args) {
test01();
}
private static void test01() {
// ApplicationContext在配置文件加载时,实例化bean。
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("\n\n------------------------------------");
// 通过方法getBean获取UserService实例。
UserService userService = (UserService) applicationContext.getBean("userService01");
System.out.println(userService);
System.out.println("------------------------------------\n\n");
}
}
运行结果:
=============调用UserService01Impl构造函数================
类UserServiceImpl01的方法init、、、、、、、、、、、、、、、、、、、、、、、、、、、、、