gpt4 book ai didi

java - faces-config.xml 中的注释与托管 beans 声明

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:52 26 4
gpt4 key购买 nike

我正在接触 JSF 2.0,并且对新的基于注释的 Autowiring (在 faces-config.xml 中没有任何代码的托管 bean 的声明)有一定的疑问。

就我而言,注释既好又简单,但问题可能会出现在大型系统中用一个 bean 替换另一个 bean 的特定需求,如果使用注释,将导致需要删除某些类(或类似的脏 hack),而它可以很容易地在 faces-cofig.xml 中修复。

请分享您在此事上的经验。什么应该被认为更方便,为什么?

最佳答案

but problem may come to a certain need of substituting one bean with another in a big system

根本不应该这样做。 JSF 托管 bean 应该特定于 JSF View ,并且不能被其他层/API 重用。如果您想在 JSF 和不了解 JSF 的其他层/API 之间共享一些数据,那么您应该将该数据放在它自己的类中,并使其成为 JSF 托管 bean 的属性。

所以,而不是

@ManagedBean
@SessionScoped
public class User {
private Long id;
private String username;
private String password;
// ...
}

你应该拥有

@ManagedBean
@SessionScoped
public class UserManager {
private User user;
// ...
}

public class User {
private Long id;
private String username;
private String password;
// ...
}

这样您就可以在所有层之间共享 User 而不必担心特定于层的 API。这也称为“数据传输对象”架构模式。

关于java - faces-config.xml 中的注释与托管 beans 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com