Spring JavaConfig @Import實例
一般來說, 需要按模塊或類別 分割Spring XML bean文件 成多個小文件, 使事情更容易維護和模塊化。 例如,
<import resource="config/customer.xml"/>
<import resource="config/scheduler.xml"/>
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;
@Configuration
public 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;
@Configuration
public 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 11
SchedulerBo : Hello 22