Spring JavaConfig @Import实例

来源:互联网 发布:js 空格换成换行符 编辑:程序博客网 时间:2024/05/17 12:20
一般来说, 需要按模块或类别 分割Spring XML bean文件 成多个小文件, 使事情更容易维护和模块化。 例如,
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <import resource="config/customer.xml"/>        <import resource="config/scheduler.xml"/> </beans>
Spring3 JavaConfig它等效于 @Import 功能
package com.yiibai.config;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Import;@Configuration@Import({ CustomerConfig.class, SchedulerConfig.class })public class AppConfig {}

@Import实例

请参阅使用JavaConfig @Import的一个完整的例子。

1. 目录结构

本实例目录结构。

2. Spring Beans

两个简单的Spring bean。

File : CustomerBo.java

package com.yiibai.core;public class CustomerBo {public void printMsg(String msg) {System.out.println("CustomerBo : " + msg);}}

File : SchedulerBo.java

package com.yiibai.core;public class SchedulerBo {public void printMsg(String msg) {System.out.println("SchedulerBo : " + msg);}}

3. @Configuration示例

现在,使用JavaConfig @Configuration声明上述Bean类。

File : CustomerConfig.java

package com.yiibai.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.yiibai.core.CustomerBo;@Configurationpublic class CustomerConfig {@Bean(name="customer")public CustomerBo customerBo(){return new CustomerBo();}}

File : SchedulerConfig.java

package com.yiibai.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.yiibai.core.SchedulerBo;@Configurationpublic class SchedulerConfig {@Bean(name="scheduler")public SchedulerBo suchedulerBo(){return new SchedulerBo();}}

4. @Import示例

使用@Import加载多个配置文件。

File : AppConfig.java

package com.yiibai.config;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Import;@Configuration@Import({ CustomerConfig.class, SchedulerConfig.class })public class AppConfig {}

5. 执行程序

加载主配置文件,并进行测试。
package com.yiibai.core;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import com.yiibai.config.AppConfig;public class App {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);CustomerBo customer = (CustomerBo) context.getBean("customer");customer.printMsg("Hello 11");SchedulerBo scheduler = (SchedulerBo) context.getBean("scheduler");scheduler.printMsg("Hello 22");}}

输出结果

CustomerBo : Hello 11SchedulerBo : Hello 22
0 0
原创粉丝点击