好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Spring init-method与destroy-method属性的用法解析

Spring init-method与destroy-method属性使用

知识点介绍:

有时候在bean初始化之后要执行的初始化方法,以及在bean销毁时执行的方法。这时就需要配置init-method和destroy-method属性,顾名思义,配置初始与销毁的方法。

操作步骤:

1、创建Speaker对象

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

public class Speaker {

     private String name;

     private String topic;  

     private Speaker(String name,String topic){

         this .name = name;

         this .topic = topic;

     }

    

     /**

      * Speaker实例化时执行的方法

      */

     private void init() {

         System.out.println( "执行Speaker 的 初始化方法 init" );

     }

 

     /**

      * Speaker销毁时执行的方法

      */

     private void destroy() {

         System.out.println( "执行Speaker 的销毁方法 destroy" );

     }

    

     public void teach() {      

         System.out.println(toString());

     }

    

     @Override

     public String toString() {

         return "Speaker [name=" + name + ", topic=" + topic + "]" ;

     }

}

2、创建Spring配置文件beanLearn05.xml

?

1

2

3

4

5

6

7

8

9

10

11

12

13

<? xml version = "1.0" encoding = "UTF-8" ?>

< beans xmlns = "http://HdhCmsTestspringframework.org/schema/beans"

  xmlns:xsi = "http://HdhCmsTestw3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://HdhCmsTestspringframework.org/schema/beans

http://HdhCmsTestspringframework.org/schema/beans/spring-beans.xsd">

 

  <!-- Learn 05 init-method和destroy-method属性的使用 -->

  < bean id = "speaker05" class = "com.mahaochen.spring.learn05.Speaker"

   init-method = "init" destroy-method = "destroy" >

   < constructor-arg index = "0" value = "elle" />

   < constructor-arg index = "1" value = "Study Hard!" />

  </ bean >

</ beans >

3、将Spring配置文件beanLearn05.xml引入到主配置文件beans.xml中。

?

1

2

<!-- Learn 04  使用实例工厂方式实例化Bean -->

  < import resource = "com/mahaochen/spring/learn05/beanLearn05.xml" />

4、编写测试类TestSpring05.java。

?

1

2

3

4

5

6

7

8

public class TestSpring05 {

  public static void main(String[] args) { 

   ApplicationContext appContext = new ClassPathXmlApplicationContext( "beans.xml" );

   Speaker speaker05 = (Speaker) appContext.getBean( "speaker05" );

   speaker05.teach();

   ((ClassPathXmlApplicationContext) appContext).close();

  }

}

init-method="init"和 destroy-method="close" 作用

一般在我们配置数据源的时候,会这样写

?

1

< bean id = "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" init-method = "init" destroy-method = "close" >

init-method="init" destroy-method="close" 作用:

init-method="init" 是指bean被初始化时执行的方法,当bean实例化后,执行init-method用于初始化数据库连接池。

destroy-method="close" 是指bean被销毁时执行的方法 Spring容器关闭时调用该方法即调用close()将连接关闭。

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

原文链接:https://blog.csdn.net/mahoking/article/details/42177159

查看更多关于Spring init-method与destroy-method属性的用法解析的详细内容...

  阅读:18次