美文网首页
Spring中的InitializingBean

Spring中的InitializingBean

作者: 守住阳光 | 来源:发表于2018-09-26 16:56 被阅读0次

            InitializingBean接口为bean提供了初始化方法,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean完成时会执行该方法。

    一、使用示例

            1、定义TestInitializingBean,实现InitializingBean接口。

    public class TestInitializingBean implements InitializingBean{

        @Override

        public void afterPropertiesSet() throws Exception {

            System.out.println("ceshi InitializingBean");       

        }

        public void testInit(){

            System.out.println("ceshi init-method");       

        }

    }

            2、配置文件如下:

    <bean id="testInitializingBean" class="com.TestInitializingBean" ></bean>

            3、测试类,主程序进行Spring的初始化

    public class Main {

        public static void main(String[] args){

            ApplicationContext context = new FileSystemXmlApplicationContext("/src/main/java/com/beans.xml");

        }

    }

    输出结果:

    ceshi InitializingBean

            以上示例说明在spring初始化bean的时候,如果bean实现了InitializingBean接口,会自动调用afterPropertiesSet方法。

    二、实现InitializingBean接口与在配置文件中指定init-method有什么不同?

            1、修改配置文件,加上init-method配置,修改如下:

    <bean id="testInitializingBean" class="com.TestInitializingBean" init-method="testInit"></bean>

            在配置文件中加入init-method="testInit"。

            运行Main程序,打印如下结果:

    ceshi InitializingBean

    ceshi init-method

            由结果可看出,在spring初始化bean的时候,如果该bean是实现了InitializingBean接口,并且同时在配置文件中指定了init-method,系统则是先调用afterPropertiesSet方法,然后在调用init-method中指定的方法。

            我们可以通过上面的方式进行bean的初始化定制。

    相关文章

      网友评论

          本文标题:Spring中的InitializingBean

          本文链接:https://www.haomeiwen.com/subject/qwhjoftx.html