Spring - JavaConfig @Import示例

原文地址:https://mkyong.com/spring3/spring-3-javaconfig-import-example

通常,您會(huì)將一個(gè)大型Spring XML bean文件分割成多個(gè)小文件(按模塊或類別分組),以使其更易于維護(hù)和模塊化。例如,

<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>

在Spring Java Config中,等效功能是@Import。

package com.mkyong.config;

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

@Configuration
@Import({ CustomerConfig.class, SchedulerConfig.class })
public class AppConfig {
}

1. Spring Beans

File : CustomerBo.java

package com.mkyong.core;

public class CustomerBo {

    public void printMsg(String msg) {
        System.out.println("CustomerBo : " + msg);
    }

}

File : SchedulerBo.java

package com.mkyong.core;

public class SchedulerBo {

    public void printMsg(String msg) {
        System.out.println("SchedulerBo : " + msg);
    }

}

2. @Configuration示例

File : CustomerConfig.java

package com.mkyong.config;

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

import com.mkyong.core.CustomerBo;

@Configuration
public class CustomerConfig {
    
    @Bean(name="customer")
    public CustomerBo customerBo(){
        return new CustomerBo();
    }
}

File : SchedulerConfig.java

package com.mkyong.config;

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

@Configuration
public class SchedulerConfig {
    
    @Bean(name="scheduler")
    public SchedulerBo suchedulerBo(){
        return new SchedulerBo();
    }
    
}

3. @Import示例

使用@Import加載多個(gè)配置文件。

File : AppConfig.java

package com.mkyong.config;

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

@Configuration
@Import({ CustomerConfig.class, SchedulerConfig.class })
public class AppConfig {
}

4. 運(yùn)行

package com.mkyong.core;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.mkyong.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 1");

        SchedulerBo scheduler = (SchedulerBo) context.getBean("scheduler");
        scheduler.printMsg("Hello 2");

    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容