zoukankan      html  css  js  c++  java
  • 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了,不会出现未注入的情况。

  • 相关阅读:
    洛谷P2568 GCD
    线段树(模板)
    题解 CF1296D 【Fight with Monsters】
    图片针对父元素居中 TileImg
    npm
    echarts线图,柱状图,饼图option
    mac下修改环境变量
    input获取焦点,但不调起键盘
    mac shh 关联git仓库
    根据滚动条触发动画
  • 原文地址:https://www.cnblogs.com/zhjh256/p/9984134.html
Copyright © 2011-2022 走看看