首页 新闻 会员 周边

最近看到一段代码,很是疑惑。spring注解为什么可以写在接口上,一般不是在类上注解让spring 去实例化吗?接口怎么实例化?

0
[已解决问题] 解决于 2017-09-08 11:03

@Repository
public interface ReportFileRepository extends JpaRepository<ReportFile, Integer> {

....

}

队长给我球。的主页 队长给我球。 | 菜鸟二级 | 园豆:324
提问于:2017-08-31 10:28
< >
分享
最佳答案
1

在 Spring 配置文件中增加一行声明,让 Spring 为声明的接口创建代理对象。配置了 <jpa:repositories> 后,Spring 初始化容器时将会扫描 base-package 指定的包目录及其子目录,为继承 Repository 或其子接口的接口创建代理对象,并将代理对象注册为 Spring Bean,业务层便可以通过 Spring 自动封装的特性来直接使用该对象。

队长给我球。 | 菜鸟二级 |园豆:324 | 2017-08-31 15:06
其他回答(2)
0

我用mybatis,repository都是只有接口,实现全给mybatis了。

Daniel Cai | 园豆:10424 (专家六级) | 2017-08-31 10:55

额。。我想知道原理~

支持(0) 反对(0) 队长给我球。 | 园豆:324 (菜鸟二级) | 2017-08-31 13:56
0

Spring JPA默认可以根据接口自动生成包装类,这是jpa的一种用法

如果你要加新的方法时,那就需要放到类上了

2012 | 园豆:21230 (高人七级) | 2017-08-31 13:19

 那在接口上注解后,spring 怎么去实例化的? 他不可能违背java 的接口不能实例化原则吧?

支持(0) 反对(0) 队长给我球。 | 园豆:324 (菜鸟二级) | 2017-08-31 13:57

@队长给我球。: 

Spring Data实战 这本书有详细的原理讲解

支持(0) 反对(0) 2012 | 园豆:21230 (高人七级) | 2017-09-01 08:20

@2012: 谢谢,我已经找到答案了~

支持(0) 反对(0) 队长给我球。 | 园豆:324 (菜鸟二级) | 2017-09-08 10:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册