spring 注解配置

以前我们在配置spring文件的时候一般都是这么写

<bean id="test" class="com.test.Test"  autowire="byName">

<property name="song" ></property>

</bean>

autowire有4种自动装配的类型

byName 把与bean的属性具有相同名字(或者id)的其他bean自动配置到bean对应的属性中。

byType 把与bean的属性具有相同类型的其他bean自动配置到bean对应的属性中。

constructor 把与bean的构造器入参具有相同类型的其他bean自动配置到bean对应的属性中。

autodetect 首先尝试使用constructor进行自动装配。如果失败在使用byType进行装配。

从spring2.5开始可以使用注解自动装配。spring默认禁用注解配置,如使用,在spring的配置文件中需要开启注解。<context:annotation-config/>

此时,我们可以使用注解配置bean了。

@Autowired

private String song;

其实注解@Autowired就是配置文件中  autowire的变形。@Autowired可以用于属性,方法,构造器上。另外 可以使用@Qualifier来限定自动配置的注解的使用范围。如

@Autowired

@Qualifier("test")

private String song;

@Autowired有一个属性required,默认是true,表示自动装配。当@Autowired标注在每个构造器(重载)上的时候,只能有一个

构造器的@Autowired(required='true'),其余的都是@Autowired(required='flase')。

另外我们也可以借助@inject和@named来限定注解范围。@inject和@Autowired一样,不过@inject没有required的属性。@Named类似于spring的@Qualifier。@inject和@named都是jsr-330中的注解。

@Inject

@Named("test")

private String song;

有些时候在项目中使用的是自动检测bean的这种方法。比如

 

<context:component-scan base-package="com.iscc"></context:component-scan>自动扫描该包下面的bean.其实他是查找了以下注解:@Component,@Controller,@Service,@Repository,@Configuration只要找到这些注解,spring就可以自动监测bean.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值