欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

spring注解如何为bean指定InitMethod和DestroyMethod,

来源: javaer 分享于  点击 4660 次 点评:38

spring注解如何为bean指定InitMethod和DestroyMethod,


目录
  • spring注解为bean指定InitMethod和DestroyMethod
    • 下面是具体代码
  • 注意@Bean中的initMethod和destroyMethod

    spring注解为bean指定InitMethod和DestroyMethod

    /**
     *  指定组建的init方法和destroy的几种方法
     *      1:在配置类中 @Bean(initMethod = "init",destroyMethod = "destory")注解指定
     *      2:实现InitializingBean接口重写其afterPropertiesSet方法,实现DisposableBean接口重写destroy方法
     *      3:利用java的JSR250规范中的@PostConstruct标注在init方法上,@PreDestroy标注在destroy注解上
     */

    需要注意的是:

    • 单实例bean:容器启动时创建对象
    • 多实例bean:每次获取时创建对象

    初始化:

    • 对象创建完成,赋值完成,调用初始化方法

    销毁:

    • 单实例:容器关闭时调用
    • 多实例:容器不会销毁,只能手动调用销毁方法

    下面是具体代码

    Car.java

    public class Car { 
        public Car() {
            System.out.println("Car's Constructor..");
        }
     
        public void init(){
            System.out.println("Car's Init...");
        }
     
        public void destory(){
            System.out.println("Car's Destroy...");
        } 
    }

    配置类

        @Bean(initMethod = "init",destroyMethod = "destory")
        public Car car(){
            return new Car();
        }

    注意@Bean中的initMethod和destroyMethod

    @Configuration
    public class AppConfig {
    @Bean(initMethod = "init")
    public Foo foo() {
    return new Foo();
    }
    @Bean(destroyMethod = "cleanup")
    public Bar bar() {
    return new Bar();
    }
    }

    上述代码中initMethod和destroyMethod后面没有括号。

    记住千万不要带括号。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持3672js教程。

    您可能感兴趣的文章:
    • 详解java代码中init method和destroy method的三种使用方式
    • Spring中bean的初始化和销毁几种实现方式详解
    • SpringBoot中的Bean的初始化与销毁顺序解析
    相关栏目:

    用户点评