Java - 避免创建空的子类和接口(interface)或生成 Java 源代码模板

我正在使用 SpringMybatis 开发一个 java web 项目。
在 dao 层面,我定义了一个父类(super class)和一个超接口(interface),实现了所有常用的方法。
因此在dao级别为特定模型创建子类或接口(interface)时,只需要实现super dao类&接口(interface),类体和接口(interface)体留空。 半数以上的子道级类&接口(interface)一直是空的。


(空dao类&接口(interface)示例:)

RoleDao.java

package core.dao;

import core.dao.base.BaseDao;
import core.model.Role;

public interface RoleDao extends BaseDao<Role> {
}

RoleDaoImpl.java

package core.dao.impl;

import org.springframework.stereotype.Repository;

import core.dao.RoleDao;
import core.dao.base.BaseDaoImpl;
import core.model.Role;

@Repository
public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao {
}

我的问题是:

有没有什么好的方法可以避免编写这些空类和接口(interface),同时仍然可以使用它们?

我正在考虑使用代码生成器来生成这些类文件,或者根据需要使用Java反射在运行时创建这样的类和接口(interface),但没有得到详细的。


@更新

在不创建源代码的情况下实现目标似乎不太灵活,所以我决定为java web项目编写一些简单的java源代码生成器。

一个叫做codemodel的工具非常适合做这件事,它是由Sun开发的,现在我猜是Oracle拥有的。

而且,我自己给出了一个答案,代码是我为生成 java 源代码而编写的。

最佳答案

我们项目中使用 QueryDSL 和 JPA 的类的 Repository 类只有一个接口(interface),但没有实现。但是,它没有回答是否可以基于实体类直接生成这些存储库的问题,尽管它类似于 Apt Maven Plugin 的内容。确实创建了用于 QueryDSL 的 QEntity 类。

@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID>, QueryDslPredicateExecutor<T> {
}

@Repository
public interface DummyDataRepository extends BaseRepository<DummyData, Long> {
}

https://stackoverflow.com/questions/28209789/

相关文章:

spring - Spring JUnit 测试中的自动模拟实例化

spring - jar 如何在使用它的 Web 应用程序中传播漏洞?

java - Spring 验证与 Hibernate 验证

java - Spring Boot + Spring Data Multi-Tenancy

java - 单个 hibernate session 中的多个事务(使用 Spring)

java - Spring配置继承和@Import的区别

java - 使用spring boot(安全)和keycloak启用角色身份验证?

java - 使用具有不同 AuthenticationProviders 的多个 WebSecur

java - Spring MVC 3.2 - 错误页面的内容协商?

java - Spring Integration Kafka Consumer Listener