在setter

时间:2015-10-24 09:54:57

标签: cdi jsf-2.2

所以我有一个包含类别字段的bean。如果该类别字段设置为特定值,例如“MATCH”,我想初始化一个bean。然而,在类别的设定者中进行这种反模式是一种反模式,我想知道在这种情况下是否可以认为是好的,或者可能有更好的方法来做到这一点。 我不想使用postConstruct,因为bean的使用时间非常短。因此,在这种情况下,我认为在PostConstruct中进行DB调用是不合理的。

@Named
@ViewScoped
public class BeanA implements Serializable {
    private Category category;

    @Inject
    private MatchCreation matchCreation;


    public void setCategory(Category category) {
        this.category = category;
        if("MATCH".equals(category.getName()){
             matchCreation.init(); // I'll put a check here to not initialize it twice
        }
    }
}

@Named
@ViewScoped
public class MatchCreation {
    private List<Team> teamList;
    private List<Map> mapList;
    @EJB
    private TeamService ts;
    @EJB
    private MapService ms;

    public void init() {
        teamList = ts.getProTeams();
        setMapList(ms.getAllMaps());
    }
}

同样在那个特定的豆子里,我有9次注射。我不必害怕使用这些权利,我不必尝试最低限度吗?

0 个答案:

没有答案