Spring JavaConfig @Import實例

一般來說, 需要按模組或類別 分割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/beans
	http://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.zaixian.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.zaixian.core;

public class CustomerBo {

	public void printMsg(String msg) {

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

}

File : SchedulerBo.java

package com.zaixian.core;

public class SchedulerBo {

	public void printMsg(String msg) {

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

}

3. @Configuration示例

現在,使用JavaConfig @Configuration聲明上述Bean類。

File : CustomerConfig.java

package com.zaixian.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.zaixian.core.CustomerBo;

@Configuration
public class CustomerConfig {

	@Bean(name="customer")
	public CustomerBo customerBo(){

		return new CustomerBo();

	}
}

File : SchedulerConfig.java

package com.zaixian.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.zaixian.core.SchedulerBo;

@Configuration
public class SchedulerConfig {

	@Bean(name="scheduler")
	public SchedulerBo suchedulerBo(){

		return new SchedulerBo();

	}

}

4. @Import示例

使用@Import加載多個配置檔。

File : AppConfig.java

package com.zaixian.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.zaixian.core;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.zaixian.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
下載代碼 – http://pan.baidu.com/s/1basJTk


上一篇: Spring JavaConfig實例 下一篇: Spring依賴注入(DI)