【问题标题】:JSF + Spring Using @Autowired in a ManagedBean ; Do we need setters and gettersJSF + Spring 在 ManagedBean 中使用 @Autowired ;我们需要setter和getter吗
【发布时间】:2014-12-03 10:19:34
【问题描述】:

我正在使用 Spring 和 JSF 2.0。 这就是我的班级的样子 @ManagedBean(name = "userLogin", eager = true) @SessionScoped 公共类用户登录

在这个类中我使用以下属性

@Autowired
@ManagedProperty(value   = "#{userService}")
private    UserService    userService;

这就是我的 userService 的样子

@Service("userService")

在像 struts 这样的框架中,我可以在没有 setter 和 getter 的情况下使用 userService,因为它被命名为服务。 请告诉如何在没有 setters 和 getters 的情况下使用它,因为我觉得它有点开销。

基本上我只是想摆脱 userService 作为 Spring bean 的 getter 和 setter。

问候 拉申

【问题讨论】:

  • 这就是我的 userService 类的样子 @Service("userService") @Transactional(readOnly = true) public class UserServiceImpl implements UserService {}
  • 如果使用@ManagedBean/@ManagedProperty,则需要getter/setter。如果你使用@Component/@Autowired,你就不用。您的混合 JSF/Spring 不起作用(在您的示例中不需要 @Autowired)。

标签: jsf-2 setter autowired getter managed-bean


【解决方案1】:

@ManagedProperty(value = "#{userService}") 在这里可能什么都不做,因为UserService 不是 JSF 托管 bean(从您评论中的代码判断)。您正在组合两种依赖注入策略,而您只需要一种(@ManagedProperty 需要设置器)。

如果你删除@ManagedProperty,只留下@Autowired,我认为它应该可以工作。

【讨论】:

  • 是的,我只是用@Component 和@Scope("session")
猜你喜欢
  • 2011-10-05
  • 1970-01-01
  • 2017-01-28
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多