Spring入门:生命周期回调!!

看代码:

    定义一个Foo类
    public class Foo {
        定义一个初始化的方法
        public void init(){
            System.out.println("init method is called");
        }
        定义一个销毁方法
        public void destory(){
            System.out.println("destroy method is called");    
        }
      
    }


//这个bean与之前的bean相比,多配置了两个东西,init-method 和 destory-method
//同时这两个特性的值对应就是class中的方法
//初始化就是指初始化当前bean
//销毁就是指销毁当前bean
//生命周期是指bean的谁的生命周期
//任何生命周期核心都是实例的创建和销毁
//这种创建和销毁在这里是由class中的方法负责的啊
//第一个问题:这些方法在何时调用?由谁来调用?
//容器来调用,容器如何来调用呢? 容器可以调用bean实例啊,bean实例就可以调用这些方法啊
//init方法在bean创建之后调用
//destroy方法在容器关闭之前调用!! 容器关闭是个什么概念呢? 还是说bean都销毁了,就等于是bean关闭了呢
//这里补充一个知识:bean的作用域不一样,destory方法调用时点就不一样
<bean id="foo" class="com.wiley.beginningspring.ch2.Foo"

      init-method="init" destory-method="destory"/>


再来看一对代码:
  //这段代码先按时序拆分一下:
    1.先定义的方法
    2.然后再添加注解
   public class Bar{
       //该注解表示一个方法:javax.annotation.PostConstruct
       //该方法由谁来调用?应该还是spring容器
       //在何时来调用呢?在bean创建之后,在初始化之前!!
       //所以该方法要注解在init方法上
       @PostConstruct
       public void init() throws Exception{
           System.out.println("init method is called");
       }
       //该注解表示一个方法:javax.annotation.PreDestory
       //那该方法由谁来调用?
       //在何时调用呢?在初始化之后,在销毁之前!!
       //所以该方法要注解在destory方法上
       @PreDestroy
       public void destory() throws RuntimeException{
           System.out.println("destory method is called");
       }

  
   }

   <bean class="com.wiley.beginningspring.ch2.Bar"/>
   
   //以上两个注解方法怎么才能调用呢?就是添加下面这个标签
   //意思是吧注解配置到当前的spring环境中
   //这样spring容器就可以调用这两个方法了
   <context:annotation-config />

再来看一段代码:
    定义一个类Baz 实现两个接口:InitializingBean,DisposableBean
    public class Baz implements InitializingBean,DisposableBean{
        在类中,首先重写afterPropertiesSet()方法:初始化属性
        @Override
        public void afterPropertiesSet() throws Exception{
            System.out.println("init method invoked");
        }
        然后重写destroy()方法
        @Override
        public void destroy() throws Exception{
            System.out.println("destory method invoked");
        }

    }

    //这里就不用配置init-method属性和destroy-method属性了
    //重写的方法按上述机制进行调用
    <bean id="" class="com.wiley.beginningspring.ch2.Baz"/> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值