Java Spring建议不适用于递归bean
我制作了一个简单的应用程序,其中包含以下组件依赖关系树:Java Spring建议不适用于递归bean,java,spring,aop,spring-aop,Java,Spring,Aop,Spring Aop,我制作了一个简单的应用程序,其中包含以下组件依赖关系树: Service1 injects Service2(via constructor) Service2 injects SomeContext(via setter) SomContext injects Service1(via setter) Advisor is for Service1 因此,当spring尝试构造Service1或Service2时,它会自动尝试应用advice,但spring中有一个check-iscurre
Service1 injects Service2(via constructor)
Service2 injects SomeContext(via setter)
SomContext injects Service1(via setter)
Advisor is for Service1
因此,当spring尝试构造Service1或Service2时,它会自动尝试应用advice,但spring中有一个check-iscurrentlyncreation(在BeanFactoryAdvisorRetrievalHelper.java中),因此它尝试应用advice的bean仍然是它的创建,并跳过advice application
我知道bean的递归是一种糟糕的设计方式,但现在很难解耦和重构
在factorybean的帮助下,我通过applicationcontext(applicationcontextaware)修复了这个问题,并在需要时通过applicationcontext(applicationcontextaware)加载服务1,但也许有人知道更好的解决方案?如果应用编译时编织而不是加载时编织,您可以解决这个问题。这里有两篇文章可以帮助您开始: