Spring注解开发学习1

SpringIOC学习笔记1

为什么学习Spring注解开发

springioc使用注解开发更加简单,有效,减少配置文件的书写,可以更好的融入到下一阶段Springboot的学习。

@Configuration注解与@Bean

@Configuration相当于一个配置类,相当于bean的xml,在里面可以实现bean.xml的各种配置,但这个是基于注解,非常方便程序员的快速开发。@Bean顾名思义,这是一个bean实例,使用该注解与返回该实例的方法上即向容器中注册该bean实例。

@Configuration
public class MyConfig {
    @Bean
    public Car car(){
        return new Car();
    }

@Bean默认是用方法名作为ID,如果需要指定则需要进行指定

@Configuration
public class MyConfig {
    @Bean("car")
    public Car car00(){
        return new Car();
    }

@ComponentScan与@ComponentScans

@ComponentScan相当于一个包扫描器,value是路径,如果需要指定哪些组件则使用includeFilters,相反,如果需要指定哪些组件不被扫描进容器则使用excludeFilters但容器默认规则为全部扫描,使用该excludeFilters需要禁用掉useDefaultFilters=false。

@Configuration
@ComponentScan(value = "spring",includeFilters = {
        @Filter(type = FilterType.ANNOTATION,classes = {Controller.class})

},useDefaultFilters = false)
public class MyConfig {
    @Bean
    public Car car(){
        return new Car();
    }
}

当然我们可以使用自身的拦截规则,需要实现TypeFilter接口,当容器扫描到每个组件时可以获取它当时的信息

@Configuration
@ComponentScan(value = "spring",includeFilters = {
        @Filter(type = FilterType.CUSTOM,classes = {MyTypeFilter.class})
},useDefaultFilters = false)
public class MyConfig {
    @Bean
    public Car car(){
        return new Car();
    }
}
public class MyTypeFilter implements TypeFilter {
    @Override
    public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {
        ClassMetadata classMetadata=metadataReader.getClassMetadata();
        String name=classMetadata.getClassName();
        if(name.contains("Co"))return true;
        return false;
    }
}

@ComponentScans可以包含多个含有ComponentScant类的数组

@ComponentScans(value = {@ComponentScan(value = "spring",includeFilters = {
        // @Filter(type = FilterType.ANNOTATION,classes = {Controller.class})
        @ComponentScan.Filter(type = FilterType.CUSTOM,classes = {MyTypeFilter.class})
},useDefaultFilters = false)
})
public class ComponentScansConfig {
}

以上就是IOC的容器加载入门,下面我会写具体各项配置详细注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值