3.2.1 通过扫描装配你的Bean

对于扫描装配而言使用的注解是**@Component@ComponentScan**。@Component是标明哪个类被扫描进入IoC容器,而@ComponentScan则是标明采用何种策略去扫描装配Bean

修改user类,加入@Component注解

@Component("user")
public class User {
    
    @Value("1")
    private Long id;
    @Value("user_name_1")
    private String userName;
    @Value("note_1")
    private String note;
}

@Component标明这个类将被IoC容器扫描装配,其中的"user"是作为Bean的名称,如果不配置的话,IoC容器就会把类名第一个字母小写,其他不变作为Bean名称放入IoC容器中
@Value则是指定具体的值

修改AppConfig,加入@ComponentScan

@Configuration
@ComponentScan
public class AppConfig {
}

加入了@ComponentScan,意味着它会进行自动扫描,但是它只会扫描类AppConfig所在的当前包和其子包,之前把User.java移动到它的当前目录下就是这个原因,这样就可以删除之前使用@Bean标注的创建对象方法了

然而为了使得User类能够被扫描,我们把它迁移导论本部不该放置它的配置包,这样不合理,其实可以自定义扫描的包
可以通过@Component的配置项basePackages定义扫描的包名;还可以通过basePackageClasses定义扫描的类;还有includeFiltersexcludeFilters

修改AppConfig中的注解:

@ComponentScan(basePackageClasses = {User.class})
//@ComponentScan(basePackages = {"com.springboot.chapter3.pojo"})

为了使包下的某个容器不被注入

//@ComponentScan(basePackages = "com.springboot.chapter3.*",excludeFilters = {@ComponentScan.Filter(classes = {Service.class})})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值