我刚开始学习spring-boot,并了解了rest服务。我怀疑spring是如何如此快速地在多个jar中找到准确的路径("(类文件的。就像我确信它不会遍历整个代码库一样。那么,它是否维护了一个包含每个URL和类文件名的索引文件?
示例:下面给出了TestController.java文件中的索引函数,当调用/index时应该调用该函数。但是,如果我的项目中有多个jar,那么Spring如何知道在该类中定义了getMapping of Greetings。
package com.example.springboot;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/Greetings")
public String index() {
return "Greetings from Spring Boot!";
}
}
当您启动spring-boot应用程序时,它会扫描用构造型注释注释的类,如@Controller、@Restcontroller、@Bean、@service。
当一个类用@Controller注释时,意味着它处理web请求。在组件扫描之后,它为该类创建一个bean,并将其存储在spring-Ioc容器中。
当向服务器发出web请求时,它会查找该bean中显示的请求url,并为请求提供服务。
Bean是该类的一个简单对象。