【发布时间】:2023-06-24 06:58:02
【问题描述】:
我有一个与 GWT 的 RequestFactory 和关联代理一起使用的 POJO。 POJO 具有需要访问我的数据库的静态方法 (list()) 和实例方法 (persist())。我的数据库连接池设置为通过 Guice 作为单例注入。我不确定的是我该如何执行注入以便这两种类型的方法都可以访问它?
此外,POJO 的实例是使用空构造函数创建的,因此无法使用构造函数注入。
这是一个 POJO 示例供参考:
public class Person {
private Integer id;
private String name;
public Integer getId() { return this.id; }
public void setId(Integer id) { this.id = id; }
public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
public void persist() {
//TODO: save state to DB
}
public static List<Person> list() {
//TODO: get all people from DB
return null;
}
}
【问题讨论】:
-
如果你想使用依赖注入,你不应该依赖单例以便注入它吗?即将它传递给对象的构造函数。在这种情况下不能使用空构造函数是我的理解。
-
我无法控制调用哪个构造函数。我应该更清楚地说明这一点。 RequestFactory 框架自动调用默认构造函数和 setXXX 方法来构建 POJO。如果没有可见的默认构造函数会出错。
标签: java gwt dependency-injection guice requestfactory