美文网首页
Spring 3 JavaConfig @Import exam

Spring 3 JavaConfig @Import exam

作者: lovePython | 来源:发表于2015-08-20 09:37 被阅读626次

Normally, you will split a large Spring XML bean files into multiple small files, group by module or category, to make things more maintainable and modular. For example,

<?xml version="1.0"?>
<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>

In Spring3 JavaConfig, the equivalent functionality is @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 {}

@Import Example

See a full example of using JavaConfig @Import.

1. Directory Structure

Directory structure of this example.

spring-javaconfig-import.png

2. Spring Beans

Two simple 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); 
    }
}

3. @Configuration example

Now, use JavaConfig @Configuration to declare above beans.
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();           
    }    
}

4. @Import example

Use @Import to load multiple configuration files.

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

5. Run it

Load the main configuration file , and test it.

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

Output

CustomerBo : Hello 1
SchedulerBo : Hello 2

相关文章

网友评论

      本文标题:Spring 3 JavaConfig @Import exam

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