spring第一天

Spring提供了三中配置的可选方案(推荐使用顺序3->2->1)

1在XML中进行显示配置

2在Java中进行显示配置

3隐式的bean发现机制和自动装备机智


一、自动化装配bean

Spring从两个角度来实现自动化装配

1组件扫描:Spring会自动发现应用上下文中所创建的bean

2自动装配:Spring会自动满足bean之间的依赖

今天在测试的时候使用了SpringJUnit4ClassRunner和@ContextConfiguration

SpringJUnit4ClassRunner的用处是在测试开始的时候自动创建Spring的应用上下文。

@ContextConfiguration会告诉需要再哪里加载配置


重点

@Component("lonelyHeartClue")注解。表明该类会被作为组件类,并告知Spring要为这个类创建bean。括号中是给bean命名

@ComponentScan。在Spring中启用组件扫描。默认会扫描与配置类相同的包。(需要java代码来配置开启)

    XML配置中与之对应的是<context:component-scan base-package="***">元素

    设置基础扫描包

    @ComponentScan("soundsyatem")

    @ComponentScan(basePackages="soundsystem")

    @ComponentScan(basePackages={"soundsystem", "video"})

    @ComponentScan(basePackageClasses={CDPlayer.class, DVDPlayer.class}) 这两个类所在的包会作为扫描的基础包

@Autowired。自动装配

    可以用在构造器上

 @Autowired

public CDPlayer(CompactDisc cd) {
    this.cd = cd;
}
用在setter方法上

    @Autowired

    public void setCompactDisc(CompactDisc cd){

        this.cd = cd;

    }

    可以用在其他任何方法上

二、通过java代码装配

bean通常会将javaConfig放到其他的包中,使它与其他的用用程序逻辑分开。

@Configuration
@ComponentScan
public class CDPlayerConfig {
 
    @Bean
    public CompactDisc sgtPeppers(){
        return new SgtPeppers();
    } 
    @Bean
    public CDPlayer cdPlayer(){
        return new CDPlayer(sgtPeppers);
    }
}
@Configuration表明这个类是一个配置类

   @Bean会告诉Spring这个方法将会返回一个对象,该对象要注册为spring应用上下文中的bean,默认情况下bean的id与方法     名一样,也可以@Bean(name="*****")来指定一个名字

new CDPlayer(sgtPeppers);因为sgtPeppers添加了@Bean,Spring将会拦截所有对它的调用,并确保该方法所创建的bean。
    
@Bean
public MediaPlayer cdPlayer(CompactDisc compactDisc){
    return new CDPlayer(compactDisc);
}
这种方法是最佳的,因为它不会要求CompactDisc声明到同一个类中,甚至可以通过组件扫描功能自动发现或者通过XML来今夕配置。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值