Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring建议不适用于递归bean_Java_Spring_Aop_Spring Aop - Fatal编程技术网

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,但也许有人知道更好的解决方案?

如果应用编译时编织而不是加载时编织,您可以解决这个问题。这里有两篇文章可以帮助您开始:


您试图应用什么建议,以及如何在spring环境中配置它?请展示一些关于建议、PublishService和SpringbeanXML的代码。