开发者学堂课程【Java 面试疑难点串讲1:面试技巧及语言基础:资源注入】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/24/detail/531
资源注入
内容介绍
一、资源注入
一、资源注入
@Resource、@Autowired
这两个注解功能都是直接利用反射进行对象的引用配置。
在 Spring 里面有一个 component-scan 配置项,该配置项的主要功能是设置一个扫描包,也就是如果说现在设置的扫描包定义为: cn.mldn,那么这个包下的所有类以及这个包的所有子包下的所有类上,只要出现有“@Component”(@Service、@Repository、@Action都是对@Component包装)这样的注解就表示该类的对象交由 Spring 负责进行实例化(与 bean 的配置功能是一样的)。
这样一来同样是在这个包里面的A引用了B。
package cn.mldn.a ;-
@Component //Spring
负责实例化
public class A {
@Resource//
如果没有重名的时候;
private B b ;
}
Aa= new A () ;
setB(B
类对象);
package cn.mldn.b ;
@Component//
交由Spring容器管理
public class B{}
但是如果在没有相同类型 Bean 对象的时候 @Resource、@ Autowired 是没有区别的,而最重要的是如果是类型相同的情况下,@Autowired 将无法使用,而@Resource 则可以设置名字使用它。
@Componentl//
交由Spring容器管理,
public class B }
是避免了引用关系的配置,而简化了程序的开发代码。