Spring Bean与抽象类

时间:2017-12-30 19:30:29

标签: java spring hibernate spring-mvc

我想知道Spring DI如何与Abstract类一起使用。 例如,请看下面的两个样本:

道层:

  public abstract class BaseDaoImpl<T extends ShoppingCartEntity> implements BaseDao<T> {
    @Autowired
    protected SessionFactory sessionFactory;

    private Class<T> entityClass;

    public BaseDaoImpl(Class<T> entityClass) {
      super();
      this.entityClass = entityClass;
    }

   //common dao layer methods like getAll(),save(entity) etc
  }

我还没有使用@Repository("baseDao")注释标记BaseDaoImpl,但仍然可以在sessionFactory实例上注入@Autowired依赖项。

服务层:

@Service("baseService")
public abstract class BaseServiceImpl implements Serializable {

  /**
   * 
   */
  private static final long serialVersionUID = 1L;

  @Autowired
  private DaoProvider daoProvider;
  //other fields
  }

这里我将BaseService标记为抽象,并且还使用了@Service注释,它将BaseService类注册为服务层的Spring Bean组件。

现在,我有两个问题:

  1. 如果一个类是抽象的,那么Spring如何从中创建一个bean呢?

  2. 如果某个类未标记任何spring bean组件 注释(如@Component,@Repository,@Service or @Conroller) 我们是否应该能够对这些依赖关系进行自动连接 类?(就像我的daoLayer基类,它不是一个spring bean 组件,但我仍然可以注入

    @Autowired protected SessionFactory sessionFactory;

0 个答案:

没有答案
相关问题