Spring装配-Java配置

本文介绍了Spring框架中组件扫描(@ComponentScan)的基本用法,包括如何指定扫描范围及使用不同方式定位目标类。同时,文章还展示了如何通过SpringJUnit4ClassRunner结合@ContextConfiguration进行单元测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// CD的概念
public interface CompactDisc {
}

/*
 带有@Component的类
 Spring所有的Bean会有一个ID,在Java配置的方法中没有ID那么ID就是类名字的首字母小写
 如果想给Bean增加不同的ID那么可以在注解@Component("beanID")
 还有一个方法是使用Java依赖注入规范@Named("BeanId")
  */
@Component
public class SgtPeppers implements CompactDisc{
    private String title = "京东CD";
    private String artist = "The Beatles";

    // CD播放
    public void play() {
        System.out.println("Playing" + title + " by " + artist);
    }
}
/*
    Spring配置类
    @Configuration: 证明是配置类
    @ComponentScan: 开启扫描
    在不添加其他配置的情况下@ComponentScan此注解只会扫描同级目录下的
    如果要扫描其他包或者多个包的时候:
    一个的时候:@ComponentScan(basePackage="packageName")
    多个的时候:@ComponentScan(basePackage={"packageName", "Cdplay"})
    包的名字都是采用String形式去定位的,那么这种方法是类型不安全的。
    较为安全的方式:指定包中的接口或类
    @ComponentScan(basePackageClasses = {CDplay.class})
 */
@Configuration
@ComponentScan
public class CDPlayConfig {
}
/*
    SpringJUnit4ClassRunner.class: 在测试开始就创建Spring上下文
   @ContextConfiguration(classes = CDPlayConfig.class):从哪里加载Spring配置
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = CDPlayConfig.class)
public class CDPlayerTest {
    /*
        @Autowired:自动装配
        作用是让Spring自动满足Bean依赖的方法,会在Spring查找匹配的某个Bean需求的其他的Bean。
        不止可以作用在Get和set方法的上面还可以在构造函数上面加入,这个时候就是在对象创建的时候可以自动装配
        不管是构造器还是get和set方法还时其他的方法,Spring的自动装配的注解都会尝试去满足方法参数上的依赖,
        如果没有找到匹配的情况就会抛出异常,那么避免这种异常情况得发生可以在Autowired注解的属性required设置为false
        相同作用的注解:
        JAVA规范:@Inject @Named
     */
    @Autowired
    private CompactDisc cd;

    @Test
    public void cdShouldNotBeNUll() {
        assertNotNull(cd);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值