spring组件注解和注入注解

来源:互联网 发布:闲鱼申请淘宝介入几天 编辑:程序博客网 时间:2024/05/21 11:28

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用法一致,需要额外导包

0 0