spring:bean的方法init-method和方法destroy-method

5 篇文章 0 订阅

方法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、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值