9、springboot 零散笔记
1、
@Configuration
@Slf4j
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始静态资源映射");
registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
}
}
2、
@Value("${age}")
String age;
二种获得Environment 的对象
@Autowired
private Environment env;
//调用
System.out.println(env.getProperty("name"));
3、RequestParam和PathVariable的区别
1、相同点
这两个都是用来处理前端传递过来的请求参数
2、不同点
不同的是RequestParam处理的是请求参数,而PathVariable处理的是路径变量
这样说更容易理解,RequestParam是将对应请求路径下的请求参数值映射到处理器参数上
而PathVariable是将请求路径变量的值映射到处理器参数上
直接上例子
http://localhost/mdeditor/chen?id=39
//将请求参数映射到处理器参数上
@RequestMapping("/mededitor/chen")
public String getId(@RequestParam( value="id",requested=false)String Pid){
return id;
}
//会输出39
//如下,设置chen为路径变量
http://localhost/mdeditor/chen
//将请求的路径变量,映射到处理器参数中
@RequestMapping("/mededitor/{page}")
public String getId(@PathVariable( value="page",requested=false) String Page){
return page;
}
//会输出chen
//同时,在路径变量名和处理器参数名一致的时候,我们可以省去PathVariable中的value值,如下
http://localhost/mdeditor/cc
@RequestMapping("/mededitor/{page}")
public String getId(@PathVariable String page){
return page;
}
//输出cc
总结:
@PathVariable:路径上的值
@RequestParam:请求参数
在工作中遇到传入path路径,只能用@RequestParam,用pathVaribale会将整段url搞乱而不能通过
介绍下SpringBoot的自动装配原理
在启动SpringBoot项目的main方法的头部有一个@SpringBootApplication注解,在这个注解中组合了一个EnableAutoConfiguration注解,这个注解的作用就是打开自动装配,而在这个注解中又包含了一个@Import注解,在这个注解中引入了一个实现了 ImportSelector接口的类型,在对应的selktimports方法中会读取META/INF目录下的spring.factories文件中需要被自动装配的所有的配置类,然后通过META-INF下面的spring:autoconfigure-metadata.properties文件做条件过滤。最后返回的就是需要自动装配的相关的对象。


浙公网安备 33010602011771号