Spring 3 JavaConfig @Import example

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,



    
    

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 3 JavaConfig @Import example_第1张图片
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 example)