spring组件注解和注入注解

spring组件注解和注入注解

一 组件注解

1.@Component    通用组件

2.@Service         业务层组件

3.@Respository   持久层组件

4.@Controller      控制层组件

这四个组件都是写在类的前面.@Service是业务层组件,@Respository是持久层组件,@Controller控制层组件.在目前的spring版本当中,@Component是通用的意思,一般写在比较中立的类的最前面;作用和其他三个是等同的;但是在web应用程序采用经典的分层结构时;后三个组件分别写在各自层的对应的类前面.

对应的组件扫描的配置文件如下:

<context:component-scan   base-package="annotation"/>      //扫描annotation包及子包下的所有文件


二  注解注入方式:(需要在类前面加@Component)

(1)使用set的方式注入

①set方法的注入:
写法一:@Autowired加到set方法前面,@Qualifier用来指定要注入的bean的id.
注,如果不使用@Qualifier,会使用byType的方式来注入;如:
@Autowired
public void setWt(@Qualifier("wt")Waiter wt){
System.out.println("setWt()");
this.wt=wt;
}
写法二:@Autowired可以加到属性前;如:
@Autowired
@Qualifier("wt")
private Waiter wt;

@Resource添加到set方法前面,使用name属性来指定要注入的bean的id
@Resource也可以添加到属性前;如:

@Resource(name="wt")
private Waiter wt;
Setter注入推荐用@Resource

@Inject/@Named
用法和@Autowired用法一致,需要额外导包

(2)使用构造器注解

@Autowired也可以加到属性前
@Autowired
public School(@Qualifier("wt")Waiter wt){
System.out.println("School's 带参构造器");
this.wt=wt;
}
构造器注入推荐使用@Autowired

@Inject/@Named
用法和@Autowired用法一致,需要额外导包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值