码迷,mamicode.com
首页 > 编程语言 > 详细

2.2、通过Java代码装配bean

时间:2018-02-23 23:54:22      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:第三方库   color   package   建议   span   装配bean   ota   告诉   方法   

通过Java代码装配bean

例如,需要将第三方库的组件加载到你的应用中,此时无法给他的类上添加@Component和@Autowired注解,此时不能使用自动化装配了。

这种情况下,就必须使用显式装配的形式,可以选择Java代码装配或Xml装配

建议:显式配置是优先使用JavaConfig装配,因为他强大、类型安全且对重构友好;因为他和业务代码无关,应放到单独的包中

@Configuration

告诉Spring,这是一个Spring配置类,用来配置Spring应用上下文如何配置bean

@Bean

创建一个方法,用来产生类的实例,并告诉Spring,这个实例要注册为Spring应用上下文中的bean

package soundsystem;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CDPlayerConfig {
    @Bean
    public CompactDisc sgtPeppers() {
        return new SgtPeppers();
    }
    @Bean
    public CDPlayer cdPlayer1() {
        return new CDPlayer(sgtPeppers());
    }
    @Bean
    public CDPlayer cdPlayer2(CompactDisc compactDisc) {
        return new CDPlayer(compactDisc);
    }
}

首先,使用new SgtPeppers()的实例,为CompactDisc类型创建一个bean

cdPlayer1中,通过直接调用SgtPeppers()方法获取实例,看似每次调用cdPlayer1,都会产生一个新的CompactDisc实例,但实际上,因为SgtPeppers()方法添加了@bean备注,Spring会拦截其调用,如果已创建bean则直接返回bean,不会重新创建。

cdPlayer2中,给这个方法添加了@Bean注解,Spring会在调用的时候为参数找到对应类型的实例,自动注入

其中cdPlayer2的方式更符合实际代码的运行,建议使用这种方式,方便理解。

2.2、通过Java代码装配bean

标签:第三方库   color   package   建议   span   装配bean   ota   告诉   方法   

原文地址:https://www.cnblogs.com/LiveYourLife/p/8463693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!