zoukankan      html  css  js  c++  java
  • spring框架中的@Import注解

    转自:https://www.cnblogs.com/hfultrastrong/p/8621450.html

    Spring框架中的@Import注解

    在之前的文章中,作者介绍了Spring JavaConfig. 这是除了使用传统的XML文件之外,spring带来的新的选择。同样作者列出了作为Java Config一部分的annotations.如果你是spring的新手,这里也有大量的关于springspring 4的资料索引。

    在列表中,@Import 是被用来整合所有在@Configuration注解中定义的bean配置。这其实很像我们将多个XML配置文件导入到单个文件的情形。@Import注解实现了相同的功能。本文会介绍使用@Import注解来导入spring工程中的JavaConfig文件.

    在下面的例子中,我创建了两个配置文件,然后导入到主配置文件中。最后使用主配置文件来创建context.

    代码

    Car.java
    package javabeat.net.basic;
    public interface Car {
        public void print();
    }
    Toyota.java
    
    package javabeat.net.basic;
    import org.springframework.stereotype.Component;
    @Component
    public class Toyota implements Car{
        public void print(){
            System.out.println("I am Toyota");
        }
    }
    Volkswagen.java
    package javabeat.net.basic;
    import org.springframework.stereotype.Component;
    @Component
    public class Volkswagen implements Car{
        public void print(){
            System.out.println("I am Volkswagen");
        }
    }
    JavaConfigA.java
    
    package javabeat.net.basic;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class JavaConfigA {
        @Bean(name="volkswagen")
        public Car getVolkswagen(){
            return new Volkswagen();
        }
    }
    JavaConfigB.java
    
    package javabeat.net.basic;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class JavaConfigB {
        @Bean(name="toyota")
        public Car getToyota(){
            return new Toyota();
        }
    }
    ParentConfig.java
    
    package javabeat.net.basic;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Import;
    
    @Configuration
    @Import({JavaConfigA.class,JavaConfigB.class})
    public class ParentConfig {
        //Any other bean definitions
    }
    ContextLoader.java
    
    package javabeat.net.basic;
    
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class ContextLoader {
        public static void main (String args[]){
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ParentConfig.class);
            Car car = (Toyota)context.getBean("toyota");
            car.print();
            car = (Volkswagen)context.getBean("volkswagen");
            car.print();
            context.close();
        }
    }

    程序执行输出
    I am Toyata
    I am Volkswagen

    总结

    本文作者介绍了@Import注解的使用。这个注解帮助我们将多个配置文件(可能是按功能分,或是按业务分)导入到单个主配置中,以避免将所有配置写在一个配置中。

  • 相关阅读:
    wpf 文字动态动画效果
    c# 使用 Tchart控件之数据绑定
    Linq to sql学习之查询句法
    非常有用的查询所有SqlServer数据库字典的操作
    利用WPF建立自适应窗口大小布局的WinForm窗口
    SqlMethods
    wpf 炫彩动画效果简单实例
    SetBkMode与SetBkColor理解
    Windows的字体LOGFONT
    GetWindowRect和GetWindDC GetClientRect和GetDC 在标题栏输入文字
  • 原文地址:https://www.cnblogs.com/sharpest/p/7991695.html
Copyright © 2011-2022 走看看