Spring之Bean对象的初始化和销毁方法

简介: 在Bean对象的完整的生命周期前我们还需要给大家介绍下Bean对象自身初始化及销毁的相关方法。


 在Bean对象的完整的生命周期前我们还需要给大家介绍下Bean对象自身初始化及销毁的相关方法。

Bean初始化及销毁方法

 在Spring中给我们提供了两种操作的方法,

   通过bean标签中的init-method和destroy-method属性来设置初始化及销毁对象时的回调方法

   通过@PostConstruct注解和@PreDestroy注解来标示初始化的方法及销毁回调的方法。

两种方式演示

public class User {
  private int id;
  private String name;
  private String beanName;
  public User(){
    System.out.println("User 被实例化");
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getBeanName() {
    return beanName;
  }
  public void setBeanName(String beanName) {
    this.beanName = beanName;
  }
  /**
   * 自定义的初始化方法
   */
  public void start(){
    System.out.println("--自定义的初始化的方法--");
  }
  /**
   * 自定义的初始化的方法
   */
  @PostConstruct
  public void postConstruct(){
    System.out.println("...postConstruct...");
  }
  /**
   * 销毁前回调方法
   */
  @PreDestroy
  public  void preDestory(){
    System.out.println("--preDestory---");
  }
  /**
   * 销毁前的回调方法
   */
  public void end(){
    System.out.println("--end--");
  }
  @Override
  public String toString() {
    return "User [id=" + id + ", name=" + name + ", beanName=" + beanName + "]";
  }
}

spring的配置中设置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
  <!-- 激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解 -->
  <context:annotation-config />
  <bean class="com.dpb.pojo.User" id="user" init-method="start" destroy-method="end">
    <property name="name" value="波波烤鸭"></property>
  </bean>
</beans>

测试

@Test
public void test1() {
  ClassPathXmlApplicationContext ac = 
      new ClassPathXmlApplicationContext("applicationContext.xml");
  User user = ac.getBean(User.class);
  System.out.println(user);
  // 注册销毁
  ac.registerShutdownHook();
}

输出结果

User 被实例化
...postConstruct...
--自定义的初始化的方法--
User [id=0, name=波波烤鸭, beanName=null]
--preDestory---
--end--

输出结果的方法执行顺序和我们介绍的一致~~,下篇我们将结合前面介绍的各个接口一起来总结下Bean的完整生命周期


相关文章
|
9天前
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
73 26
|
2月前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
178 73
|
2月前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
2月前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
2月前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
72 6
|
2月前
|
XML Java 数据格式
🌱 深入Spring的心脏:Bean配置的艺术与实践 🌟
本文深入探讨了Spring框架中Bean配置的奥秘,从基本概念到XML配置文件的使用,再到静态工厂方式实例化Bean的详细步骤,通过实际代码示例帮助读者更好地理解和应用Spring的Bean配置。希望对你的Spring开发之旅有所助益。
141 3
|
9月前
|
存储 Java 数据库
Spring的使用-Bean对象的储存和获取/Bea对象的作用域与生命周期
Spring的使用-Bean对象的储存和获取/Bea对象的作用域与生命周期
|
设计模式 前端开发 Java
Spring Bean对象生命周期
Spring Bean对象生命周期
419 0
|
存储 Java Spring
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
152 0
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
|
Java Maven 开发者
Spring 对象生命周期示例|学习笔记
快速学习Spring 对象生命周期示例
138 0
Spring 对象生命周期示例|学习笔记