Java Spring方面/顾问的初始化顺序
有没有一种方法可以配置Spring中不同方面(或者更准确地说是它们对应的顾问)的初始化方式?注意,我谈论的不是通知顺序,而是方面的初始化 这个问题的背景是一个用例,其Java Spring方面/顾问的初始化顺序,java,spring,initialization,aop,aspect,Java,Spring,Initialization,Aop,Aspect,有没有一种方法可以配置Spring中不同方面(或者更准确地说是它们对应的顾问)的初始化方式?注意,我谈论的不是通知顺序,而是方面的初始化 这个问题的背景是一个用例,其方面a依赖于服务X,应该由方面B建议。但是,由于方面A首先初始化并强制创建服务X,方面B不应用于服务 如何更改初始化顺序而不使服务X依赖于方面B(这将是一个解决办法,因为它强制执行所需的顺序,但服务不必处理其方面 如果您想了解我的问题的大局,一个方面通常只是一个@aspect注释的类,它也用@组件进行注释,或者具有相应的定义。换句话
方面a
依赖于服务X
,应该由方面B
建议。但是,由于方面A
首先初始化并强制创建服务X
,方面B
不应用于服务
如何更改初始化顺序而不使服务X
依赖于方面B
(这将是一个解决办法,因为它强制执行所需的顺序,但服务不必处理其方面
如果您想了解我的问题的大局,一个方面通常只是一个
@aspect
注释的类,它也用@组件进行注释,或者具有相应的
定义。换句话说,它只是一粒豆子
定义bean初始化顺序的唯一方法是使用依赖于属性(或@DependsOn
)或通过处理导入上下文的顺序。好的,如果我的方面B
是通过@EnableCaching
自动创建的缓存,而不是由我显式地放在一起,没有比依赖BeanFactoryCacheOperationsSourceAdvisor
(这是缓存方面的最后一个相关bean)更抽象的方法来等待它的创建,对吗?因此,如果spring缓存的默认bean在将来更改,它将不再工作…@chk我认为您最好将它放在另一个.hmm导入的@Configuration
类中,不幸的是,这没有真正的帮助。它影响在不同配置中显式定义的bean的初始化顺序,但这似乎不适用于由@EnableCaching
隐式声明的bean。。。