zoukankan      html  css  js  c++  java
  • 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.yiibai.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.yiibai.core;
    
    public class CustomerBo {
    
    	public void printMsg(String msg) {
    
    		System.out.println("CustomerBo : " + msg);
    	}
    
    }

    File : SchedulerBo.java

    package com.yiibai.core;
    
    public class SchedulerBo {
    
    	public void printMsg(String msg) {
    
    		System.out.println("SchedulerBo : " + msg);
    	}
    
    }

    3. @Configuration示例

    现在,使用JavaConfig @Configuration声明上述Bean类。

    File : CustomerConfig.java

    package com.yiibai.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import com.yiibai.core.CustomerBo;
    
    @Configuration
    public class CustomerConfig {
    	
    	@Bean(name="customer")
    	public CustomerBo customerBo(){
    		
    		return new CustomerBo();
    		
    	}
    }

    File : SchedulerConfig.java

    package com.yiibai.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import com.yiibai.core.SchedulerBo;
    
    @Configuration
    public class SchedulerConfig {
    	
    	@Bean(name="scheduler")
    	public SchedulerBo suchedulerBo(){
    		
    		return new SchedulerBo();
    		
    	}
    	
    }

    4. @Import示例

    使用@Import加载多个配置文件。

    File : AppConfig.java

    package com.yiibai.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.yiibai.core;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    import com.yiibai.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://www.yiibai.com/spring/spring-3-javaconfig-import-example.html
  • 相关阅读:
    Android服务器——TomCat服务器的搭建
    Ubuntu16.04 Liunx下同时安装Anaconda2与Anaconda3
    android中代码操作外部SD卡出错:W/System.err(1595): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
    查准率与查全率(precision and recall) 的个人理解
    Python游戏-实现键盘控制功能
    UGUI世界坐标转换为UI本地坐标(游戏Hud的实现)
    LoadRunner中遭遇交互数据加密的处理方案
    [Java]链表的打印,反转与删除
    优化程序性能(3)——提高并行性
    基本排序算法的python实现
  • 原文地址:https://www.cnblogs.com/soundcode/p/6367015.html
Copyright © 2011-2022 走看看