Spring-注解实现Bean

本文介绍了Spring框架中Bean的注册方式,包括使用注解定义Bean及其扫描路径配置方法。同时,详细阐述了如何通过@Autowired实现Bean之间的自动装配,以及在多Bean匹配情况下的解决策略。
摘要由CSDN通过智能技术生成
1.Bean的注册
若使用注解,需要再核心包基础上追加aop的lib包。
当在配置文件中指定通过注解定义bean的路径后,
Spring会自动扫描改指定路径,侦测和实例化具有特定注解的组件
指定路径包的方法为:如下所示多个包用逗号分开,指定包后其子包也被一并包含。
<context:component-scan base-package="myspring1, myspring2"> 
另外,还可以通过resource-pattern 来用正则表达式指定特定的注解。
context:include-filter,context:exclude-filter来特殊指定包含,不包含指定类。

特定组件注解(Spring虽然不区分他们,但是为了编码方便尽量使用对应层的组件):
@Component 基本注解,标识了一个受Spring管理的组件
@Respository:标识持久层组件
@Service:标识服务层(业务层)组件
@Controller:标识表现层组件
对于扫描到的组件,Spring有默认的命名策略:使用非限定类名,
第一个字母小写(比如Person类,默认生成的bean名字为person)。
也可以在注解中通过value属性值标识组件的名称。

用base-package被指定扫描对象,并且通过上面的注解进行注解后,
相应的类文件右上角会标识为s,代表是Spring的特殊文件。
2.Bean间相互引用。
<context:component-scan>元素由于自动注册了AutowiredAnnotationBeanPostProcessor实例,
所以,通过@Autowired注解放置到字段,构造器,或者有参数的方法上面,可以被自动引用。
例如下面的自动装配,在调用时,会自动找系统中被定义的car bean.
若定义了required=false,则找不到该car bean时,会赋值为null,
若没有required=false,则找不到car bean时会报异常。
若有多个匹配对象,则抛出异常。
若有多个兼容的bean出现时,则可以通过注解的value属性给不同的注解起不同的名字。
还可以通过@Qualifier指定不同的注解。
@Autowired(required=false)
public void setCar(Car car){
}
<完>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值