ioc------扫描bean组件

我们知道(——————Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件.

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值