|
|
1
4
如果您愿意,可以称之为overkill,但实际上我们最终做的是创建一个通用工厂,它将接受任何对象并使用反射(递归地)查找所有空属性并实例化正确类型的对象。我是用ApacheCommonsBeanutils做的。 通过这种方式,您可以获取从各种来源(DAO、XML反序列化等)获得的对象,将其传递到此工厂,并将其用作表单支持对象,而无需担心绑定所需的内容可能为空。 诚然,这意味着实例化我们可能不需要的属性,但在我们的例子中,这通常不适用。 |
|
|
2
3
我通常会确保对象被完全初始化——这使使用对象变得更加简单,并避免在代码中分散空检查。 在这里给出的例子中,我可能会将初始化放在getter中,这样子对象只有在实际使用时才被实例化,即:调用getter时,然后仅当它为null时。 就从数据库加载一对一关系而言,我通常会进行连接并加载批次。性能影响通常是最小的,但您应该知道可能有一个。 当涉及到一对多关系时,我通常会选择延迟加载。Hibernate将为您解决这一问题,但如果您正在运行自己的,那么您只需要一个自定义的List实现,当调用与其内容相关的任何方法时,该实现将调用相应的DAO。
|
|
|
3
1
1) 是的,当你写作的时候
2) 我通常在声明时初始化成员对象,就像在代码段中一样。如果初始化值是非条件的,则看不到factory类执行此任务的好处。 我不清楚你被迫两次创造一个人的问题。。。但是我可能累了;) |
|
|
4
1
我采用了工厂方法(不喜欢为它使用单独的类,对我来说,将它放在一个静态方法中更合理,所以它都在一个地方)。我有点像-
如果我从数据库中加载Person,Person类中有一个名为“initializeForContentActinFoForm”之类的方法。从数据库加载Person之后,我将在服务层调用这个方法,该方法由SpringMVC方法调用,该方法返回表单备份对象。 我不认为这是一个真正的惯例,这只是我自己制定的一种方法。我真的不知道有什么缺点,所以如果有人不同意,请让我知道。。。 |
|
|
Chirag Arora · 如何在构造函数中使用注入的依赖关系? 1 年前 |
|
|
Harley Jackson · Spring表单验证多个消息资源 2 年前 |
|
|
OmB · 我想在Spring JPA规范的WHERE子句中包含括号 2 年前 |