Spring实战学习笔记-自动扫描和自动装配

本文详细介绍了在Spring框架中如何声明Bean,包括使用@Component、@Service、@Repository、@Controller注解以及通过XML和Java配置文件的方式。同时,解释了@ComponentScan注解的作用,用于扫描并加载指定包及其子包下的Bean。此外,还讨论了自动装配机制,如@Autowired和@Resource注解的使用,以实现Bean的依赖注入。
摘要由CSDN通过智能技术生成

1.声明bean

  • 通过注解声明bean

使用@Component注解可创建bean,作用和在xml文件中配置<bean id="" class=""/>的功能是一样的。

除了@Component,还有@Service,@Repository,@Controller注解

  • 通过xml配置文件声明bean

<bean id="helloService" class="com.example.HelloServiceImpl"></bean>

  • 通过Java代码来声明bean

@Configuration注解表明该类是一个配置类,可在该类的方法上添加@Bean来声明bean

注意:一般配合和@ComponentScan使用

 

创建好bean后,我们需要扫描bean,什么意思呢?这些bean我们创建好了,但是哪些bean需要放进spring容器中我们不知道,这个时候就需要用到@ComponentScan了

下面重点来讲下@ComponentScan注解,其实@ComponentScan类似于在xml配置文件中写如下文件:

<context:component-scan base-package="com.xxx.xxxx"/>

1.默认扫描

@ComponentScan默认装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中

2.扫描路径

使用@ComponentScan默认扫描当前包及其子包下面的bean,如果在@ComponentScan后加上(basePackages="com.xx.xx"),即扫描固定xx包

3.扫描固定的类

可在@ComponentScan注解后面可添加如下内容:

includeFilters=Filter[]:指定只包含的组件
excludeFilters=Filter[]:指定需要排除的组件;
useDefaultFilters=true/false:指定是否需要使用Spring默认的扫描规则:被@Component, @Repository, @Service, @Controller或者已经声明过@Component自定义注解标记的组件;
 

再多提一点,由于@SpringBootApplication注解里包含了@ComponentScan,所以如果项目中使用了@SpringBootApplication,可直接在@SpringBootApplication注解后面设置扫描路径。

 

2.自动装配

使用@Autowired(根据类型)注解可对bean进行自动装配

使用@Resource(根据名称,名称是类的第一个字母小写)注解对bean进行自动装配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值