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

使用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{

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏儿童编程

一张图理清《梅花易数》梗概

学《易经》的目的不一定是为了卜卦,但是了解卜卦绝对能够让你更好地了解易学。今天用一张思维导图对《梅花易数》的主要内容进行概括,希望能够给学友们提供帮助。

32440
来自专栏华章科技

穿越十年后看互联网+:家电行业的金矿在哪里?

现在市场上炒得火热的智能家居未来出路在何方?做智能家居的创业者应该注意哪些机会?传统家电厂商又到底如何借助互联网进行转型?本文以智能空调为例,用故事的形式,提前...

8410
来自专栏FSociety

SQL中GROUP BY用法示例

GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类...

5.2K20
来自专栏web前端教室

你可以从面试中学到什么?

讲一下我对面试的一些。。。“偏见”,哈哈,熟悉我的同学们一定要批判的读接下来的内容哈。

12300
来自专栏非著名程序员

这是对付产品经理的一副毒药,程序员慎入

程序员和产品经理的日常就像是一对天生的冤家,为了需求的实现,几乎天天在争吵。这不,就在昨天各大技术和产品群里一个程序员暴打产品经理的视频火了,被广泛传播。

12520
来自专栏腾讯NEXT学位

今天我就说三句话

11620
来自专栏haifeiWu与他朋友们的专栏

复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负...

30040
来自专栏腾讯大讲堂的专栏

白底黑字or黑底白字,眼睛更喜欢哪一个?

12310
来自专栏Ken的杂谈

【系统设置】CentOS 修改机器名

18230
来自专栏非著名程序员

「我真的没有改需求」

12010

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励