请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Spring Data JPA的机制??

自己的接口MyRepository无论继承CurdRepository还是JpaRepository最后注入的都是SimpleJpaRepository实例,但是SimpleJpaRepository实现的是JpaRepository,比如MyRepository是JpaRepository的子接口,为什么子接口注入的是父类的实现类实例?子类实例可以赋给声明为父类的变量,反过来不行的吧

正在回答 回答被采纳积分+3

1回答

老卫 2018-02-08 19:11:07

因为,JpaRepository 继承了 CurdRepository

0 回复 有任何疑惑可以回复我~
  • 提问者 Wokifren #1
    我想说的是,MyRepository继承了JpaRepository后,注入的是SimpleJpaRepository,但是SimpleJpaRepository是MyRepository的父接口JpaRepository的实现类,怎么能把父接口的实现类注入给声明为MyRepository(JpaRepository的子接口)的变量呢。。。。。。子类的实例可以赋值给声明为父类的变量,反过来应该不行啊(我有试一下把父接口的实现类实例赋给子接口的变量,不行),Spring Data JPA是怎么做到的。。。
    回复 有任何疑惑可以回复我~ 2018-02-09 09:29:25
  • 提问者 Wokifren #2
    可能是我纠结太多了,这应该要去研究底层的一些机制才能了解吧。。。。。。
    回复 有任何疑惑可以回复我~ 2018-02-09 09:40:56
  • 老卫 回复 提问者 Wokifren #3
    如果有兴趣,可以稍微看下框架的源码~
    回复 有任何疑惑可以回复我~ 2018-02-09 12:33:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信