鍍金池/ 問答/Java  C  HTML/ @RequestMapping放在接口上,為何springmvc能映射到其實(shí)現(xiàn)上

@RequestMapping放在接口上,為何springmvc能映射到其實(shí)現(xiàn)上?

springboot下
定義一個(gè)接口

public interface HelloController {

 @RequestMapping("/hello")
 String hello();

}

然后實(shí)現(xiàn)

@RestController
public class HelloControllerImpl implements HelloController {

 @Override
 public String hello(){
     return "hello";
 }

}

@RequestMapping這個(gè)應(yīng)該不是被HelloControllerImpl里的方法繼承了啊,其是怎樣起作用的?

回答
編輯回答
艷骨

這個(gè)是jdk的動態(tài)代理。
spring在初始化的時(shí)候?qū)elloControllerImpl做成bean。然后并且HelloController作為id號。
每次調(diào)用HelloController的hello方法。都會通過jdk的動態(tài)代理調(diào)用HelloControllerImpl的hello方法

2017年5月17日 00:46