java jdk @Resource注入

发布时间 2024-01-12 18:33:14作者: 弯弓射雕的男人

@Resource注解

@Autowired注解

     有什么区别?

  • @Resource注解是JDK扩展包中的,也就是说属于JDK的一部分。所以该注解是标准注解,更加具有通用性。(JSR-250标准中制定的注解类型。JSR是Java规范提案。)
  • @Autowired注解是Spring框架自己的。
  • @Resource注解默认根据名称装配byName,未指定name时,使用属性名作为name。通过name找不到的话会自动启动通过类型byType装配。
  • @Autowired注解默认根据类型装配byType,如果想根据名称装配,需要配合@Qualifier注解一起用。
  • @Resource注解用在属性上、setter方法上。
  • @Autowired注解用在属性上、setter方法上、构造方法上、构造方法参数上。

 

 

   1. resources 根据名称注入

@Service(value = "myUserService")
public class UserServiceImpl implements UserService {
//第一种方法注入 根据名称注入

@Resource(name = "myUserService")
private UserService userService;

 

  2 不指定name属性,按变量名查找进行装配

@Repository("userService2")
public interface UserService {
    public void add();
}

         调用

    @Resource
    private UserService userService2;

    也就是说 private 直接定义 Repository的里面的 value的值

3

  3.使Resource注解按类型查找进行装配

private Apple food;
<bean name="bigApple" class="model.Apple"></bean>