@Resource 是由 javax 提供的注解
1. 先根据 byName 进行装配,不配置name属性默认根据字段名(@Component 加入容器后默认beanName为类名首字母小写)
2. byName 没有找到后进行 byType 装配
3. 可指定 name 和 type
@Autoired 是由 springframework 提供的注解
1. 根据 byType 进行装配
2. 默认情况被注入的的对象不能为空(在启动装配到时抛出异常),可通过设置 required=false 来修改
3. 如果要实现 byName 和 byType 的结合需要,配合 @Qualifier("byName") 注解来使用
@Component, @Repository, @Service, @Controller, 功能都是将类加入到Spring容器中
-
@Component 通用注解
-
@Repository 用于标识数据持层(dao)
-
@Service 用于标识业务层组件(service)
-
@Controller 用于标识控制层次(controller)
@Repository @Service @Controller 继承自 @Component