This website requires JavaScript.

Autowire、Resource、Inject区别

Autowire、Resource、Inject区别

ANNOTATIONPACKAGESOURCE作用域实现方式Require属性注入依据
@AutoWiredorg.springframework.bean.factory,Spring自带的方式Spring 2.5+可以用在构造器、方法、属性、参数、注解上面通过AutowireAnnotationBeanPostProcessor类实现依赖注入默认为true,bean不存在会抛出异常,可以设置为false,不抛出异常只能根据byType选择bean,需要byname要配合@Qualifier,但是Qualifier不能注释在方法上可以标注在字段、setter、构造函数、形参上
@Resourcejavax.annotation,是JSR-250标准,JDK6以上自带,Spring版本要求2.5以上Java JSR-250可以用在方法、属性、类上通过CommonAnnotationBeanPostProcessor类实现依赖注入没有require属性,bean不存在会抛出异常可以根据byName和byType注入,默认使用byName注入,可以根据name属性指定注入的beanName可以注解在字段、方法上,也可以注释在类和接口上,表示这个类是个资源
@Injectjavax.inject,是JSR-303标准,Spring版本3以上。需要导入外部依赖Java JSR-330可以用在方法、属性、构造器上通过AutowiredAnnotationBeanPostProcessor类实现依赖注入没有require属性与Autowire一样
0条评论
avatar