首页 > 编程 > Java > 正文

Spring初始化和销毁的实现方法

2019-11-26 08:25:22
字体:
来源:转载
供稿:网友

这篇文章主要介绍了Spring初始化和销毁的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一 指定初始化和销毁方法

通过@Bean指定init-method和destroy-method;

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

二 通过让Bean实现InitializingBean(定义初始化逻辑)

@Componentpublic class Cat implements InitializingBean,DisposableBean {    public Cat(){    System.out.println("cat constructor...");  }​  @Override  public void destroy() throws Exception {    // TODO Auto-generated method stub    System.out.println("cat...destroy...");  }​  @Override  public void afterPropertiesSet() throws Exception {    // TODO Auto-generated method stub    System.out.println("cat...afterPropertiesSet...");  }​}

三 可以使用JSR250

@PostConstruct:在bean创建完成并且属性赋值完成;来执行初始化方法@PreDestroy:在容器销毁bean之前通知我们进行清理工作@Componentpublic class Dog implements ApplicationContextAware {  //@Autowired  private ApplicationContext applicationContext;    public Dog(){    System.out.println("dog constructor...");  }    //对象创建并赋值之后调用  @PostConstruct  public void init(){    System.out.println("Dog....@PostConstruct...");  }    //容器移除对象之前  @PreDestroy  public void detory(){    System.out.println("Dog....@PreDestroy...");  }​  @Override  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {    // TODO Auto-generated method stub    this.applicationContext = applicationContext;  }}

四 可以使用BeanPostProcessor

/** * 后置处理器:初始化前后进行处理工作 * 将后置处理器加入到容器中 * 在bean初始化前后进行一些处理工作; * postProcessBeforeInitialization:在初始化之前工作 * postProcessAfterInitialization:在初始化之后工作 */@Componentpublic class MyBeanPostProcessor implements BeanPostProcessor,Ordered {​  @Override  public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {    // TODO Auto-generated method stub    System.out.println("postProcessBeforeInitialization..."+beanName+"=>"+bean);    return bean;  }​  @Override  public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {    // TODO Auto-generated method stub    System.out.println("postProcessAfterInitialization..."+beanName+"=>"+bean);    return bean;  }​  @Override  public int getOrder() {    return 2;  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表