9、springboot 零散笔记

1、静态资源映射

当在resource中加入前端页面时,直接在resource加入,需要配置config添加静态资源的路径

@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、获取yml文件的属性值的两种办法

一种就是@Value注解

@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文件做条件过滤。最后返回的就是需要自动装配的相关的对象。

 

posted @ 2022-07-12 17:30  jason饼干大怪兽  阅读(38)  评论(0)    收藏  举报