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
  • 相关阅读:
    Ansible 利用playbook批量部署mariadb
    Win10系统 安装Anaconda+TensorFlow+Keras
    keras中7大数据集datasets介绍
    新闻分类:多分类问题
    机器学习之SVM多分类
    机器学习之多分类学习
    机器学习(经典博客)
    机器学习实战
    多元函数的极值分析
    一元函数、多元函数的泰勒公式
  • 原文地址:https://www.cnblogs.com/soundcode/p/6367015.html
Copyright © 2011-2022 走看看