Spring的注解开发-依赖注入相关注解

在之前的学习中,Bean的依赖注入主要是通过xml配置文件中来完成属性的注入操作,在往期的bean创建的文章中,都是以xml方式来完成bean对象的配置。

Spring主要提供以下注解,用于Bean内部进行属性注入

  • 注解 用途
    @Autowired(使用最多 自动装配一个 bean 对象,可以用在构造方法、Setter 方法、普通方法或字段上。根据类型注入引用数据,如果同一类型的bean有多个,再尝试根据引用数据名称进行二次匹配,如果匹配不成功,再报错。
    @Qualifier 与 @Autowired 合用,用于指定需要注入的具体实现类的名称
    @Resource 与 @Autowired 类似,用于自动装配一个 bean 对象,但是它可以根据 bean 的名称或类型进行注入。不指定注入名称时,根据类型进行注入(等同于@Autuwied),如果指定名称,根据名称注入(等同于@Autowired和@Qualifier)
    @Value 用于注入简单类型或字符串等值类型,也可以用于读取配置文件中的值。一般配合el表达式使用
    @Inject 与 @Autowired 类似,也是用于自动装配一个 bean 对象。不过它需要使用 javax.inject.Inject 注解,并且功能比较简单。

具体示例代码如下

  • @Autowired和@@Qualifier
  • package com.example.Service.Impl;
    
    
    import com.example.DAO.UserDAO;
    import com.example.Service.UserService;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    
    @Service("userService")
    public class UserServiceImpl implements UserService {
        @Resource(name = "userDAO2")
        private UserDAO userDAO;
    
        @Override
        public void show() {
            System.out.println(userDAO);
        }
    }
    
  • @Resource
  • package com.example.Service.Impl;
    
    
    import com.example.DAO.UserDAO;
    import com.example.Service.UserService;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    
    @Service("userService")
    public class UserServiceImpl implements UserService {
        @Resource(name = "userDAO2")
        private UserDAO userDAO;
    
        @Override
        public void show() {
            System.out.println(userDAO);
        }
    }
    
     

你可能感兴趣的:(Spring,5,spring,java,前端)