• 基于Xml方式Bean的配置-初始化方法和销毁方法


    SpringBean的配置详解

    • Bean的初始化和销毁方法配置
      • Bean在被实例化后,可以执行指定的初始化方法完成一些初始化的操作,Bean在销毁之前也可以执行指定的销毁方法完成一些操作,初始化方法名称和销毁方法名称通过
          1. "userService" name="aaa,bbb" class="com.example.Service.Impl.UserServiceImpl" init-method="init"
          2. destroy-method="destroy">
        • 指定的方法名于自己创建的方法名一致即可

            1. package com.example.Service.Impl;
            2. import com.example.DAO.UserDAO;
            3. import com.example.Service.UserService;
            4. public class UserServiceImpl implements UserService {
            5. public void init() {
            6. System.out.println("初始化方法");
            7. }
            8. public void destroy() {
            9. System.out.println("销毁方法");
            10. }
            11. public UserServiceImpl() {
            12. System.out.println("UserServiceImpl实例化");
            13. }
            14. private UserDAO userDAO;
            15. public void setUserDAO(UserDAO userDAO) {
            16. }
            17. }
        • 测试类

            1. package com.example.Test;
            2. import org.springframework.context.ApplicationContext;
            3. import org.springframework.context.support.ClassPathXmlApplicationContext;
            4. public class TestApplicationContext {
            5. public static void main(String[] args) {
            6. ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
            7. Object userService1 = context.getBean("userService");
            8. System.out.println(userService1);
            9. context.close();
            10. }
            11. }
        • 运行结果如下


    拓展 

    • 我们还可以通过实现InitializingBean接口,完成bean的初始化操作
        1. package com.example.Service.Impl;
        2. import com.example.DAO.UserDAO;
        3. import com.example.Service.UserService;
        4. import org.springframework.beans.factory.InitializingBean;
        5. public class UserServiceImpl implements UserService, InitializingBean {
        6. public void init() {
        7. System.out.println("初始化方法");
        8. }
        9. public void destroy() {
        10. System.out.println("销毁方法");
        11. }
        12. public UserServiceImpl() {
        13. System.out.println("UserServiceImpl实例化");
        14. }
        15. private UserDAO userDAO;
        16. public void setUserDAO(UserDAO userDAO) {
        17. }
        18. // todo 执行时机早于init-method方法
        19. @Override
        20. public void afterPropertiesSet() throws Exception {
        21. System.out.println("InitializingBean.....");
        22. }
        23. }
      • 测试类运行结果如下

  • 相关阅读:
    OpenHarmony 服务编译成动态库,而不是进程,问题详解
    校招面试真题 | 测试流程大概是什么?
    Java实战:Spring Boot实现WebSocket实时通信
    干货!ASSANet:让PointNet++更快更强
    Redis 2 - 高级
    如何将项目推送到GitHub中
    一个”.java”源文件中是否可以包括多个类?有什么限制?(企业真题)
    MiniApp Dev 6
    STM32 FREERTOS osDelayUntil()异常
    手把手教你CSP系列之object-src
  • 原文地址:https://blog.csdn.net/weixin_64939936/article/details/132952824