我遇到的情况是必须为五个以上的实体创建CRUD。因此,我在考虑是否有可能创建通用CRUD,以便我可以使用更少的代码,而不是为每个实体创建单独的CRUD。 我想创建一个通用的CRUDUtility,可以从每个实体控制器方法中调用它,而从该实用程序中,我想调用通用的Service类和通用的Repository接口。
这就是我想要的。
我可以从每个实体控制器调用的实用程序:
@Component
public class CRUDUtility<T> {
@Autowired
private CRUDService<T> crudService;
}
要从CRUDUtility类调用的服务类。
@Service
public class CRUDService<T> {
@Autowired
private CRUDRepository<T> crudRepository;
public T createEntity(T entityTypeParam) {
return crudRepository.save(entityTypeParam);
}
}
要从CRUDService调用的存储库:
@Repository
public interface CRUDRepository<T> extends JpaRepository<T, Number> {
}
谢谢。
答案 0 :(得分:2)
是的,您可以创建一个通用CRUD
从Spring 4开始,您可以按通用类型进行自动布线。
public interface CRUDService<T> {
List<T> listAll();
T getById(Long id);
T saveOrUpdate(T domainObject);
void delete(Long id);
}
@Service
public FirstService implements CRUDService<First>{
.........................
}
@Service
public SecondService implements CRUDService<Second>{
.........................
}
@RestController
public MyController {
@Autowired
private CRUDService<First> firstService;
@Autowired
private CRUDService<Second> secondService;
}