文档章节

Spring@Configuration、@Bean、@Import 、@ImportResource、@DependsOn 说明

随风溜达的向日葵
 随风溜达的向日葵
发布于 2016/08/26 23:29
字数 301
阅读 902
收藏 4

使用spring的这几个配置,可以将旧<xml>配置形式完全使用Java实现,也可以和<xml>嵌套使用。

@Configuration和@Bean可以配合使用,案例:

传统XML配置:

<beans>
        <bean id="classA" class="com.ClassA">
                <constructor-arg ref="ClassB"/>
        </bean>
        <bean id="classB" class="com.ClassB">
                <constructor-arg ref="c"/>
        </bean>
        <bean id="classC" class="com.ClassC"/>
</beans>

对应的可以使用@Configuration和@Bean来实现:

@Configuration
public class config{
        public @Bean ClassA classA() {
                return new ClassA(classB());
        }
        public @Bean ClassB classB() {
                return new ClassB(c());
        }
        public @Bean ClassC classC() {

        }
}

@DependsOn注解类似于<xml>的depends-on元素,案例如下:

@DependsOn({"classA","classB"})
@Component
public class ClassC{
   //codes here
}

这样,在初始化ClassC之前,一定会先初始化ClassA和ClassB。

@Import是导入通过@Configuration配置的Bean。

先通过@Configuration声明配置类

@Configuration
public class Config {
    public @Bean ClassA classA () {
        return new ClassA();
    }
}

然后使用@Import导入配置类

@Configuration
@Import(Config.class)  //导入CDConfig的配置
public class ConfigExt {
    @Bean(name = "classB")
    public ClassB classB(ClassA classA) {  
        // 注入ClassA类型的bean
        return new ClassB(classA);
    }
}

@ImportResource类似于XML配置的<import>元素,如:<import resource="importxml.xml" />。

使用方式如下:

<bean id="classA" class="com.ClassA">
       <property name="classB" ref="classB" />
</bean>
<bean id="classB" class="com.ClassB"/

Java类注入:

@Configuration
@Import(Config.class)  
@ImportResource("classpath:importxml.xml") //导入xml配置项
public class ConfigExt{

}

 

 

© 著作权归作者所有

随风溜达的向日葵
粉丝 287
博文 83
码字总数 180426
作品 0
广州
其他
私信 提问
Spring容器加载和实例化bean的顺序

一、简介 在使用Spring时,Bean之间会有些依赖,比如一个Bean A实例化时需要用到Bean B,那么B应该在A之前实例化好。很多时候Spring智能地为我们做好了这些工作,但某些情况下可能不是,比如S...

嘴角轻扬30
01/02
0
0
Spring/SpringBoot 注解学习总结

作者: 一字马胡 使用注解开发应用是一种非常赞的开发体验,仅仅使用一个注解就可以完成大量的工作以满足我们的需求,这是何等的奇妙啊。比如lombok就是一个非常棒的注解工具,仅仅一个@Sett...

疼蛋之丸
2018/07/08
0
0
Spring对Configuraion的解析

Spring配置Bean有多种形式,第一种常用的就是通过XML文件配置,另外一种就是通过@Configuraion声明类,表明是一个配置文件,他的本质作用和XML是相同的,作为Bean的载体。今天我们来和大家聊...

数齐
2018/05/26
0
0
Spring Boot集成Dubbo简单示例

项目介绍 dubbo-service 由于服务提供者和消费者都需要引用接口,因此将接口声明单独成一个项目 pom.xml service项目非常简单,不需要任务依赖。需要到安装本地maven仓库,方便后面项目引用 ...

jackzlz
2016/10/28
631
0
Spring中的bean相关的注解

Spring中Bean 相关的一些注解 @Configuration //用于将一个class声明为配置类 @Bean(name="aaa") //生成name为aaa的bean,通常与@Configuration配合使用,当name省略时,生成的bean的name为方法...

Kenny100120
2018/10/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

idea运行spring boot(推荐)

下载idea 注册激活:http://idea.lanyus.com/ 照着网上的步骤创建spring boot,这里记录存在的坑 首先gradle需要在本地配置环境变量,配制成本地的,联网下载的话要很久很久 第一次不要使用g...

安卓工程师王恒
7分钟前
1
0
java final学习笔记

代码如下:class Circle{ double r; double pi=3.14; public Circle(double r) { this.r=r; } public void getArea() { System.out.......

hellation_
25分钟前
0
0
JavaConfig版

中心思想:去xml配置文件。 在Spirng Boot和Spring Cloud中,大量使用了注解与JavaConfig。 xml文件 对应的Java类 spring.xml SpringConfig.java spring-mvc.xml SpringMvcConfig.java web.x...

流小文
44分钟前
4
0
Go 定时器内部实现原理剖析

前言 前面我们介绍了一次性定时器Timer和周期性定时器Ticker,这两种定时器内部实现机制相同。创建定时器的协程并不负责计时,而是把任务交给系统协程,系统协程统一处理所有的定时器。 本节...

恋恋美食
49分钟前
1
0
分布式协调神器 ZooKeeper 之整体概述

ZooKeeper 最早起源于雅虎研究院的一个研究小组。当时,雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就...

别打我会飞
50分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部