Bean的初始化和销毁

  在我们实际开发的时候,经常会遇到在Bean在使用之前或者之后做些必要的操作,Spring对Bean的生命周期的操作提供了支持。
在使用Java配置和注解配置下提供如下两种方式。
    1.Java配置方式:使用@Bean的initMethod和destroyMethod(相当于xml配置的init-method和destory-method)。
    2.注解方式:利用JSR-250的@PostConstruct和@PreDestroy。

实例

1.增加JSR250支持。

<dependency>   <groupId>javax.annotation</groupId>   <artifactId>jsr250-api</artifactId>   <version>1.0</version></dependency>

2.使用@Bean形式的Bean。
package com.wisely.highlight_spring4.ch2.prepost;

public class BeanWayService {     public void init(){           System.out.println("@Bean-init-method");       }       public BeanWayService() {           super();           System.out.println("初始化构造函数-BeanWayService");       }       public void destroy(){           System.out.println("@Bean-destory-method");       }}

3.使用JSR250形式的Bean
package com.wisely.highlight_spring4.ch2.prepost;

import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;

public class JSR250WayService {   @PostConstruct //1    public void init(){        System.out.println("jsr250-init-method");    }    public JSR250WayService() {        super();        System.out.println("初始化构造函数-JSR250WayService");    }    @PreDestroy //2    public void destroy(){        System.out.println("jsr250-destory-method");    }}

代码解释@PostConstruct,在构造函数执行完之后执行@PreDestroy,在Bean销毁之前执行

4.配置类
package com.wisely.highlight_spring4.ch2.prepost;

import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;

@Configuration@ComponentScan("com.wisely.highlight_spring4.ch2.prepost")public class PrePostConfig {

   @Bean(initMethod="init",destroyMethod="destroy") //1   BeanWayService beanWayService(){      return new BeanWayService();   }

   @Bean   JSR250WayService jsr250WayService(){      return new JSR250WayService();   }}

initMethod和destroyMethod指定BeanWayService类的init和destroy方法在构造之后、Bean销毁之前执行。5.运行
package com.wisely.highlight_spring4.ch2.prepost;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

   public static void main(String[] args) {      AnnotationConfigApplicationContext context =                new AnnotationConfigApplicationContext(PrePostConfig.class);

      BeanWayService beanWayService = context.getBean(BeanWayService.class);      JSR250WayService jsr250WayService = context.getBean(JSR250WayService.class);

      context.close();   }}



				
时间: 2024-12-17 23:54:37

Bean的初始化和销毁的相关文章

Spring中bean的作用域与bean的初始化与销毁

bean的作用域 通过在配置bean时,指定bean元素的scope来指定该bean的作用域 scope的默认值是singleton,即单例模式,在一个ApplicationContext中,每次调用getBean()方法,获取的都是同一个bean. 如果要使每次获取的bean 都不相同可以指定scope的值为prototype,那么每次调用getBean()都会获得一个新的bean Scope还可以去request指在一次Http请求中为单例 session在整个session范围中是单例的

spring bean的初始化和销毁

spring bean的初始化和销毁有3种形式: 1.通过注解@PostConstruct 和 @PreDestroy 方法实现初始化和销毁bean之前的操作. 2.通过xml配置init-method="" 和destory-method="" 3.通过实现InitializingBean和 DisposableBean接口

Spring Boot实战笔记(三)-- Spring常用配置(Bean的初始化和销毁、Profile)

一.Bean的初始化和销毁 在我们的实际开发的时候,经常会遇到Bean在使用之前或之后做些必要的操作,Spring对Bean的生命周期操作提供了支持.在使用Java配置和注解配置下提供如下两种方式: (1)Java配置的方式:使用 @Bean 的 initMethod 和 destroyMethod(相当于xml配置中的 init-method 和 destroy-method). (2)注解方式:利用JSR-250的 @PostContruct 和 @PreDestroy. 演示: 1.增加

四、Srping之Bean的初始化和销毁

Srping之Bean的初始化和销毁方法 通常,bean的初始化和销毁方法我们有三个地方可以入手,分别是: 自定义初始化,销毁方法 实现spring提供的InitializingBean(初始化逻辑),DisposableBean(销毁逻辑)接口 JSR250:@PostConstruct,@PreDestroy执行初始化和销毁方法 实现spring提供的BeanPostProcessor接口,实现其postProcessBeforeInitialization方法来执行在初始化之前的操作,实现

Spring学习笔记--初始化和销毁Bean

可以使用bean的init-method和destroy-method属性来初始化和销毁bean.定义一个Hero类: package com.moonlit.myspring; public class Hero { public void born() { System.out.println("the hero is born."); } public void defaultBorn() { System.out.println("the hero is born b

spring实战装配bean之Bean的作用域以及初始化和销毁Bean

1.Bean的作用域 所有的spring bean默认都是单例.当容器分配一个Bean时,不论是通过装配还是调用容器的getBean()方法,它总是返回Bean的同一个实例.有时候需要每次请求时都获得唯一的Bean实例,那么就需要覆盖Spring默认的单例配置.当在Spring中配置<bean>元素时,可以为bean声明一个作用域.为了让spring在每次请求时都为bean产生一个新的实例,只需要配置bean的scope属性为prototype即可.如下所示: <bean id=&quo

Spring IOC - 控制反转(依赖注入) - 配置初始化和销毁的方法

在Spring中如果某个bean在初始化之后,或销毁之前要做一些额外操作可以为该bean配置初始化和销毁的我方法,在这些方法中完成需要的功能. 实验: 通过断点调试模式,测试初始化方法和销毁方法的执行 package cn.tedu.beans; public class ProdDao { public ProdDao() { System.out.println("ProdDao 被创建..."); } public void init() { System.out.println

通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二种是:通过 在xml中定义init-method 和  destory-method方法 第三种是:通过bean实现InitializingBean和 DisposableBean接口 下面演示通过  @PostConstruct 和 @PreDestory 1:定义相关的实现类: package

Spring实现初始化和销毁bean之前进行的操作,三种方式

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二种是:通过 在xml中定义init-method 和  destory-method方法 第三种是:通过bean实现InitializingBean和 DisposableBean接口 下面演示通过  @PostConstruct 和 @PreDestory 1:定义相关的实现类: [java] v