美文网首页
Spring的JavaConfig

Spring的JavaConfig

作者: 冯杰宁 | 来源:发表于2018-01-10 09:37 被阅读0次

之前我们都是在xml文件中定义bean的,比如:

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

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

其实我们可以使用注解来完成这些事情,例如下面的代码,完成的功能和上面的xml配置的功能是一样的:

importorg.springframework.context.annotation.Bean;

importorg.springframework.context.annotation.Configuration;

importcom.mkyong.hello.HelloWorld;

importcom.mkyong.hello.impl.HelloWorldImpl;

@Configuration

publicclassAppConfig {

    @Bean(name="helloBean")

    publicHelloWorld helloWorld() {

        returnnewHelloWorldImpl();

    }

}

 想象一个场景,我们有一个很大的工程项目,如果将所有的bean都配置在一个xml文件中,那么这个文件就会非常的大。所以在很多的时候我们都会将一个大的xml配置文件分割为好几份。这样方便管理,最后在总的那个xml文件中导入就行了,比如:

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

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

 但是现在我们也可以使用JavaConfig来完成同样的工作了:

importorg.springframework.context.annotation.Configuration;

importorg.springframework.context.annotation.Import;

@Configuration

@Import({ CustomerConfig.class, SchedulerConfig.class})

publicclassAppConfig {

}

  我们对这个例子来看一个demo:

CustomerBo.java

publicclassCustomerBo {

    publicvoidprintMsg(String msg) {

        System.out.println("CustomerBo : "+ msg);

    }

}

SchedulerBo.java

publicclassSchedulerBo {

    publicvoidprintMsg(String msg) {

        System.out.println("SchedulerBo : "+ msg);

    }

}

现在我们来使用注解:

@Configuration

publicclassCustomerConfig {

    @Bean(name="customer")

    publicCustomerBo customerBo(){

        returnnewCustomerBo();

    }

}

@Configuration

publicclassSchedulerConfig {

    @Bean(name="scheduler")

    publicSchedulerBo suchedulerBo(){

        returnnewSchedulerBo();

    }

}

AppConfig.java

importorg.springframework.context.annotation.Configuration;

importorg.springframework.context.annotation.Import;

@Configuration

@Import({ CustomerConfig.class, SchedulerConfig.class})

publicclassAppConfig {

}

  然后运行:

publicclassApp {

    publicstaticvoidmain(String[] args) {

        ApplicationContext context = newAnnotationConfigApplicationContext(

                AppConfig.class);

        CustomerBo customer = (CustomerBo) context.getBean("customer");

        customer.printMsg("Hello 1");

        SchedulerBo scheduler = (SchedulerBo) context.getBean("scheduler");

        scheduler.printMsg("Hello 2");

    }

}

==============================================================================

本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/12/27/2835087.html,如需转载请自行联系原作者

相关文章

网友评论

      本文标题:Spring的JavaConfig

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