Spring Init-Method和 destroy-method示例

时间:2020-02-23 14:35:52  来源:igfitidea点击:

在本教程中,我们将看到Spring Init-Method和Destroy-Method。

当Bean实例化或者销毁时,我们可能需要执行一些操作,因此我们可以使用Init-Method和Destroy-Method来调用此方法,而Bean正在创建或者销毁Bean。

让我们在简单示例的帮助下了解它:

1.Country.java:

这是简单的pojo类,只有一个属性作为countryname。

在package org.igi.onitorad.onit.copy下创建Country.java。
内容到Country.java之后。

package org.igi.theitroad;
 
public class Country {
 
 String countryName ;
 
 public String getCountryName() {
  return countryName;
 }
 
 
 public void setCountryName(String countryName) {
  this.countryName = countryName;
 }
 
 public void init()
 {
  System.out.println("In init block of country");
 }
 
 public void destroy()
 {
  System.out.println("In destroy block of country");
 }
}

2.springinitdestroymain.java.

此类包含Main Function.Cratee SpringInitDestroymain.java在package org.igi.onitorad.onitoad.Copy内容到SpringInitDestroymain.java之后

package org.igi.theitroad;
 
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class SpringInitDestroyMain{
 
 public static void main(String[] args) {
 
  AbstractApplicationContext appContext = new ClassPathXmlApplicationContext("ApplicationContext.xml");
  Country countryObj = (Country) appContext.getBean("country");
  System.out.println("Country Name: "+countryObj.getCountryName());
  appContext.registerShutdownHook();
 }
}

其中我们需要注册在抽象应用程序上声明的关机钩注册器HUTDOWNHOOK()方法。
这将确保优雅的关机并调用相关的Destroy方法。

3.ApplicationContext.xml.

<?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:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
 <bean id="country" class="org.igi.javapostsforlearning.Country" init-method="init" destroy-method="destroy">
 <property name="countryName" value="Netherlands"
 </bean>
  
</beans>

4.运行

当我们将运行上面的应用程序时,我们将按照输出作为输出。

In init block of country
Country Name: Netherlands
In destroy block of country

默认初始化和销毁方法:

如果要为所有bean施用默认方法并且不想配置单个bean,则可以使用带标记的默认init-method和default-destroy-method,因此它将调用init和destroy用于配置的bean的方法applicationcontext.xml。

<?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:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
 default-init-method="init"
 default-destroy-method="destroy"
 >
 
 <bean id="country" class="org.igi.javapostsforlearning.Country">
 <property name="countryName" value="Netherlands"
 </bean>
  
</beans>