使用公共字段,它会与代理混乱吗?

时间:2016-06-04 01:50:04

标签: jsf cdi

我想知道是否更改EL解析器以便bean可以在jsf中使用公共字段可能会导致代理问题? [这就是为什么它不复制。]所有​​托管bean字段必须在框架中是私有的,因为这是EL解析器如何做事情。然而,它有点麻烦,而且大部分时间都没用。

@Named
@RequestScoped
public class myBean{
    public int age;
}

那么它会导致代理试图拦截事物或诸如此类的问题吗?

this question中的这个人显然改变了el resolver,因此它可行

1 个答案:

答案 0 :(得分:1)

不幸的是,它会混乱CDI。

为什么呢?因为当代理bean时,公共字段访问是不可能的。在启动期间Weld,您将收到定义错误:

WELD-000075: Normal scoped managed bean implementation class has a public field ...

它仅适用于非代理范围(@Singleton@Dependant)。

我同意它有点麻烦,有时看起来毫无用处,所以你有两个解决方案:

  1. 使用IDE自动生成它们。
  2. 使用lombok项目。
  3. 但它们都不是完美的。