zoukankan      html  css  js  c++  java
  • spring抽象父类注入

    spring使用@Autowired为抽象父类注入依赖

    有时候为了管理或者避免不一致性,希望具体服务统一继承抽象父类,同时使用@Autowired为抽象父类注入依赖。搜了了网上,有些解决方法实现实在不敢恭维,靠子类去注入依赖,那还有什么意义,如下:

    父类:

    public abstract class BaseCar {
        Settings settings;
    }
    复制代码
    @Component
    public class SportsCar extends BaseCar{
        //Autowired修饰方法时,根据方法参数类型判断实例化哪个类
        @Autowired 
        public void haha(Settings settings){
            super.settings=settings;//父类属性注入
        }
    
        public void print(){
    
            System.out.print(settings.getSpeed());
        }
    }
    复制代码

    这还叫自动???

    经仔细研究与测试,只要父类要注入的属性是protected保护级别即可,如下:

    复制代码
    public abstract class BusinessService {
        
        @Lazy
        @Autowired  
        protected RedisUtil redisUtil;
        
        Logger logger = LoggerFactory.getLogger(this.getClass());
    }
    复制代码

    子类继承后就可以直接使用redisUtil了,不会出现未注入的情况。

  • 相关阅读:
    Java异常处理设计(三)
    TS 3.1
    TS 3.1
    Other
    样式
    Other
    Other
    TS 3.1
    TS 3.1
    TS 3.1
  • 原文地址:https://www.cnblogs.com/jentary/p/13963770.html
Copyright © 2011-2022 走看看