spring中常用注解(一)

@Component

//等同于

<bean id="userController" class="com.xszx.controller.UserController"></bean>

//如果需要指定名称,则使用@Component(value="aaa")

@Controller

用于Controller层,便于区分代码,提高代码的可读性,作用和@Component相同

@Service

用于Service层,便于区分代码,提高代码的可读性,作用和@Component相同

@Repository

用于Dao层,便于区分代码,提高代码的可读性,作用和@Component相同

@Autowired

//set方法上标注注解

//默认是按照byType方式注入,当有多个实现时,则通过byName注入

//如果需要指定名称注入,追加@Qualifier(value = "bbb")

@Qualifier(value = "bbb")

为set方法注解起别名,如果使用了,对应的@Component(value="bbb")的value值要相同

@Resource

//set方法上标注注解

//默认是按照byName方式注入,如果没有匹配则通过byType注入

//如果需要指定名称注入,追加@Qualifier(value = "bbb")

@Resource还有两个重要的属性:name和type,用来显式指定byName和byType方式注入

对应4种情况:

// 1. 默认方式:byName
@Resource  
private UserService userDao; 

// 2. 指定byName
@Resource(name="userService")  
private UserService userService; 

// 3. 指定byType
@Resource(type=UserService.class)  
private UserService userService; 

// 4. 指定byName和byType
@Resource(name="userService",type=UserService.class)  
private UserService userService; 

        既没指定name属性,也没指定type属性:默认通过byName方式注入,如果byName匹配失败,则使用byType方式注入(也就是上面的那个例子)

        指定name属性:通过byName方式注入,把变量名和IOC容器中的id去匹配,匹配失败则报错

        指定type属性:通过byType方式注入,在IOC容器中匹配对应的类型,如果匹配不到或者匹配到多个则报错

        同时指定name属性和type属性:在IOC容器中匹配,名字和类型同时匹配则成功,否则失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码来码去(未来可期)

感谢您的打赏,我们一起进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值