Python 官方文档:入门教程 => 点击学习
目录配置文件-yaml基本语法:数据类型:web开发之简单功能分析静态资源的访问问题改变默认的静态资源的路径:配置文件-yaml 在Spring Boot开发中推荐使用yaml来作为
在Spring Boot开发中推荐使用yaml来作为配置文件。
可以使用的数据类型有date\boolean\string\number\null
单个字面量:
k: v #k:空格v
对象,键值对的集合,包括:map、hash、set、object
普通写法:
k:
k1: v1
k2: v2
k3: v3
行内写法
k: {k1: v1,k2: v2,k3: v3}
数组:一组按次序排列的值。array、list、queue
普通写法:
k:
- v1
- v2
- v3
行内写法
k: [v1,v2,v3]
编写之前,我需要配置yaml中的提示插件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
如果在打包的时候不需要打包该插件,可以在插件中设置如下:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-Maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
安装完成后,需要启动一下项目,让他生效。
实例:
Person类:
@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String, Object> score;
private Set<Double> salarys;
private Map<String, List<Pet>> allPets;
}
Pet类:
@Data
public class Pet {
private String name;
private Double weight;
}
在recources资源目录下创建application.yaml文件,使用yaml表示上述的属性:
person:
user-name: xbhog
boss: false
birth: 2021/7/27
age: 18
pet: {name: 阿毛,weight: 23}
interests: [唱歌,跳舞,玩游戏]
animal:
- jerry
- mario
score:
english: 30
math: 70
#第二种写法:score: {english: 30,math: 70}
salarys:
- 277
- 8999
- 10000
all-pets: #该allPet有两个k(sick、health),每个key包含一个list
sick:
- {name: tom}
- {name: jerry,weight:47}
health: [{name: mario,weight: 47}]
创建一个controller来测试我们的配置文件有没有生效:
因为我们之前已将将person中的属性映射到了application.yaml文件中,并且把person加入到容器中。
@Component
@ConfigurationProperties(prefix = "person")
所以我们在myconfig中做测试:
package com.xbhog.controller;
import com.xbhog.popj.Car;
import com.xbhog.popj.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.WEB.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@Autowired //自动配置,找到容器中的person
Person person;
@RequestMapping("/person")
public Person person(){
return person;
}
}
结果如图所示:
只有静态资源放在以下的文件目录中才可以:
/static/、public/、 resources/ 、META-INF/resources
最后一个测试没有成功,访问META-INF/resources/img.png返回404,如果有感兴趣的小伙伴可以测试一下。
访问的方法是:当前项目根路径/ + 静态资源名 (localhost:8080/xxx.img)
假如我们的请求路由跟图片的名字重复了,spring boot是先请求哪个呢?
我们创建一个controller:
package com.xbhog.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class mycontro {
@RequestMapping("/publicimg.png")
public String demo(){
return "asss";
}
}
让它与public文件夹下面的图片相同:
开启主程序测试结果如下:
当我们随便请求一个不存在的图片,会返回给我们404.
从上面可以看出来,请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应404页面
在application.yaml文件中:
spring:
mvc:
static-path-pattern: /res/**
这样我们访问资源的时候必须啊要加res前缀.
但是在欢迎页支持和自定义Favicon上需要关掉·tatic-path-pattern
.如果开启的话,index.html与favicon是不起效果的。
如果设置favicon设置的完后,不起作用,可以禁用下浏览器缓存或者重启下idea.
设置的方式(直接放到静态资源文件夹下即可):
直接访问localhost:8080即可看见
到此这篇关于SpringBoot之yaml语法及静态资源访问的文章就介绍到这了,更多相关SpringBoot之yaml语法及静态资源访问 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: SpringBoot中的yaml语法及静态资源访问问题
本文链接: https://www.lsjlt.com/news/131452.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0