我是否需要在DAO实现中使用setter或构造函数

时间:2011-03-28 11:00:39

标签: java hibernate spring

我有类userDAOimpl,我正在使用

@Resource(name="sessionFactory")
public SessionFactory sessionFactory;

我想问一下,除此之外我还需要使用像

这样的setter
public void setSessionfactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

public DAOImpl(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

有一件事让我感到困惑的是,这些如何被称为

2 个答案:

答案 0 :(得分:1)

没有会话工厂的DAOImpl实例是否有意义。如果它没有意义,那么它应该在构造函数中。这样,DAOImpl实例一旦构造就处于有效状态,并且永远不会处于无效状态。

编辑:会话工厂应该是私有的,而不是公开的。

答案 1 :(得分:0)

这取决于您使用的是基于属性的还是基于构造函数的依赖项注入。即

如果您使用的是Property,则需要setter。

如果您使用的是构造函数,那么在构造函数中是必需的