- SpringDataJpa如何自定义扩展?说一下思路
-
- 经过查看SpringDataJpa接口的继承体系,发现SpringDataJpa默认使用SimpleJpaRepository来创建子类对象,并且生成代理对象,最后返回出来
- 我们可以给我们所有的业务Repository抽取一个公共父接口(BaseRepository+@NoRepositoryBean注解),扩展的方法写在这个父接口中
- 然后写一个父接口的实现类,继承SimpleJpaRepository,并且实现自定义的父接口中扩展的方法
- 然后将所有业务Repository继承我们自定义的父接口(BaseRepository)
- 因为SpringDataJpa默认使用SimpleJpaRepository来创建子类对象,所以我们要让SpringDataJpa默认使用我们自定义的BaseRepository父接口的实现类来创建子类,就需要修改配置文件
-
factory-class="cn.itsource.ibs.repository.BaseRepositoryFactoryBean