是否可以使用spring存储库编写自己的函数实现?
我想实际实现这个功能
getUserByFirstName()
而不是自动获取它。 虽然我还想得到
getUserById()
自动从spring-data。
1)有可能吗?
2)是否有可能实现弹出数据自动生成的所有方法的日志记录? (或者我应该用
手动编写它们logger.log("entering method ...");
答案 0 :(得分:0)
有关第一个要求,请参阅手册的第1.3节:
对于第二个要求,我想一些基于AOP的解决方案可能对你有用。请参阅此处,例如使用Spring的AOP支持:
答案 1 :(得分:0)
是的,你可以!!!
Spring数据中有一个令人惊奇的功能允许:
使用自定义方法创建界面:
public interface UserRepositoryCustom {
User getUserByFirstName();
}
使您的Spring Data接口扩展这个新接口,以及Spring数据crud接口(或JPA,Mongo或您正在扩展的任何弹簧数据接口):
public interface MySpringDataRepository extends CrudRepository<User, Long>, UserRepositoryCustom {
}
创建一个实现 自定义界面的类。该类的名称必须是Impl,例如:UserRepositoryImpl:
public class MySpringDataRepositoryImpl implements UserRepositoryCustom {
public User getUserByFirstName(){
//Your custom implementation
}
}
现在,您只需要在服务中注入Spring数据存储库,并且可以使用这两种方法:spring-data实现方法和自定义实现方法:
@Inject private MySpringDataRepository myRepository;
那就是它!!
请查看文档中的此部分: