java - Spring 依赖注入优先级问题
高洛峰
高洛峰 2017-04-17 17:56:02
0
1
393

问题的业务场景

1.开发一个dubbo的provider服务,采用的是零配置方式,所有的配置都是以java类的形式通过注解加载。
2.目前配置分为
    a).Hibernate
    b).Dubbo
    c).AOP
    d).Thread
    e).Redis
    然后由总配置类LaunchConfig导入统一加载(这个加载有商榷,我也不确定是否在导入之前就已经被spring注入).

    
3.用到的相关spring注解有:
    @Configuration
    @ComponentScan
    @Import
    @PropertySource
    @Autowired
    @Component

问题描述

1.如上图所示,我按照顺序写了配置了,通过日志输出我确定了确实是按照顺序加载。问题是,我的某一个配置类中依赖了一个spring管理的JavaBean,它是通过@Component注解的,这边出现了一个状况就是,初始化这些配置类的时候,这个被spring管理的JavaBean好像还没有被注入进去。
2.我想问的是,Spring的依赖注入是否有优先级,如果有这个级别是如何算的,是否可以手动指定或者调整,其次就是,虽然Spring的依赖注入可以通过多个注解来实现,但是这些注解本身是否有先后的顺序,比如,@Component比@Service的加载顺序要优先
3.其实这个写法我在以前的项目使用过,那会没有问题,可能不是顺序的问题,但是我排查下来,目前认为问题在这里,当然技术水平决定了我的眼界,所以还请有经验的同学,帮忙看看,顺带指点一下。
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(1)
Ty80

關於問題2,@Service是@Component的細化,並沒有在官方文件上看到說它們有優先級區別。還有Spring的依賴注入是可以有先後順序的,例如BeanA要在BeanB之前實例化,可以考慮在BeanB中使用depend-on屬性,使得BeanA在BeanB之前實例化。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板