我使用带有 Spring 安全性的 JSF。我实施它。
我的代码:
@Named("userDetailsManagerImpl")
@Scope("application")
public class UserDetailBusinessImpl implements UserDetailsService {
@Inject
private MenuBackingBean menu;
}
一切似乎都很好。但是我必须将 MenuBackingBean 定义为应用程序范围。我只想要它的会话范围。所以我将范围更改为会话,但出现以下错误:
原因:org.springframework.beans.factory.BeanCreationException:创建名称为“userDetailsManagerImpl”的 bean 时出错:范围“会话”对于当前线程无效;如果您打算从单例中引用它,请考虑为该 bean 定义一个范围代理,
我认为此错误是由 spring security set application for default scope 引起的。
我在谷歌上搜索但没有解决这个问题(也许我没有正确的关键字搜索)。请帮我解决,谢谢
我使用的更多信息:
- JSF 2.0
- Spring 安全 3.1.2
- 从 JSR 330 命名和注入
- springframework 包中的范围注释