我有服务控制器,我想在另一个控制器中重用该功能。这是我的服务负责人

@Controller
@Service
@Scope("session")
public class Controller1{
...
}


这是我的第二位控制器

 @Controller
 public class Controller2 {
     @Autowired
     private Controller1 adminController;
     ...
 }


但是我遇到了异常,它说:


  创建名称为“ adminController”的bean时出错:作用域“会话”在当前线程中未激活;如果要从单例中引用它,请考虑为其定义一个作用域代理。


我认为这是因为Controler1是会话作用域的bean,而Controller2是应用程序。如何重用Controller2中的Controller1功能?谢谢。

最佳答案

您可以在用于Controller1的xml配置文件中使用aop:scoped-proxy

 <bean id="controller1" class="...Controller1" scope="session">
    <aop:scoped-proxy />
 </bean>


spring scoped proxy bean

10-07 19:18