美文网首页Spring
Spring - JavaConfig @Import示例

Spring - JavaConfig @Import示例

作者: HRocky | 来源:发表于2020-04-07 14:59 被阅读0次

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

    通常,您会将一个大型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>
    

    在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加载多个配置文件。

    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. 运行

    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");
    
        }
    }
    

    相关文章

      网友评论

        本文标题:Spring - JavaConfig @Import示例

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