Spring注入的多种姿势

89 阅读1分钟

注入方式

  1. 注解注入 @Autowired @Resource
    • 属性
    • 构造方法
    • Setter
  2. private final ...
    使用场景:由于 private final字段是不可变的,一旦注入后就无法修改。这种不可变性有助于确保字段的安全性和线程安全性
    使用要求:构造函数中接收依赖参数
    • 代码构造
    public class A {
        private final BService bService;
        
        public A(BService bService) {
            this.bService = bService;
        }
    }
    
    • 注解构造@RequiredArgsConstructor
    注:@RequiredArgsConstructor自动生成构造函数,入参为声明final的属性和标记@NonNull的属性
    @RequiredArgsConstructor
    public class A {
        private final BService bService;
    }
    

注入内容

  1. 单实例
  2. List
  3. Map
public class A {
    @Autowired
    private XService xService;
    @Autowired
    private List<YService> yService;
    @Autowired
    private Map<MethodClassKey, DataPermission> dataPermissionCache;
}