Annotation @Autowire如何在Spring中实例化接口

时间:2018-03-06 13:28:48

标签: spring spring-boot

我见过许多Spring启动示例,其中我们声明了一个扩展crudrepository并声明CRUUD方法的接口。在Service CLass中发布我们自动连接接口并从Service类调用crud方法。

由于我们没有在任何地方实现这个接口(在示例PersonRepo中扩展CrudRepo),春天如何实现呢? 例如:

    interface PersonRepo extends CRUDRepository {
    // method declaration
    }

    @Service
    class PersonService{
    @Autowire
    PersonRepo perrepo;

    void insert(){
    perrepo.methodname();
    }

}

1 个答案:

答案 0 :(得分:0)

Spring介绍dynamic proxy。 实际上它会扫描包并获得扩展Crud Repository接口的所有接口。对于它们中的每一个,都会创建动态代理实例。在每次调用时,代理会检查调用哪个方法并使用适当的注释。代理用作bean,因此可以自动装配。