SpringBoot
Springboot
控制器
Spring Boot提供了
@Controller和@RestController- 两种注解来标识此类负责接收和处理HTTP请求
如果请求的是页面和数据,使用
@Controller注解即可,如果只是请求数据则可以使用@RestController注解
路由映射
@RequestMapping的value属性用于匹配URL映射,value支持简单表达式@RequestMapping("/user")@RequestMapping支持使用通配符匹配URL,用于统一映射某些URL规则类似的请求:@RequestMapping("/getJson/*json"),当在浏览器中请求/getJson/a.json或者/getJson/b.json时都会匹配到后台的Json方法@RequestMapping的通配符匹配非常简单实用,支持“*” “?” “**”等通配符- 符号“*”匹配任意字符,符号“**”匹配任意路径,符号“?”匹配单个字符
- 有通配符的优先级低于没有通配符的,比如/user/addjson比/user/*json优先匹配
- 有
“**”通配符的优先级低于有"*"通配符的
参数传递
@RequestParam将请求参数绑定到控制器的方法参数上,接收的参数来自HTTP请求体或请求url的QueryString,当请求的参数名称与Controller的业务方法参数名称一致时,@RequestParam可以省略@PathVaraible: 用来处理动态的URL,URL的值可以作为控制器中处理方法的参数@RequestBody接收的参数是来自requestBody中,即请求体。一般用于外理非Content-Type: application/x-www-form-urlencoded编码格式的数据比如: application/ison、application/xml等类型的数据
@RequestParam
(@RequestParam(value = "nickname",required = false) String name)
静态资源访问
使用IDEA创建Spring Boot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下即可
如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略
在application.properties中直接定义过滤规则和静态资源位置:
spring.mvc.static-path-pattern=/static/**spring.web.resources.static-locations=classpath:/static/过滤规则为/static/**,静态资源位置为classpath:/static/

文件上传原理
- 表单的enctype属性规定在发送到服务器之前应该如何对表单数据进行编码
- 当表单的enctype=”application/x-www-form-urlencoded”(默认)时form表单中的数据格式为: key=value&key=value
- 当表单的enctype=”multipart/form-data”时,其传输数据形式如下

SpirngBoot实现文件上传功能
Spring Boot工程嵌入的tomcat限制了请求的文件大小,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。
要更改这个默认值需要在配置文件(如application.properties)中加入两个配置
1
2spring.servlet,mu1tipart.max-fiTe-size=10MB
spring.servlet.mu1tipart.max-request-size=10MB当表单的enctype=”multipart/form-data”时,可以使用MultipartFile 获取上传的文件数据,再通过transferTo方法将其写入到磁盘中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class FileContro1ler {
private static final String UPLOADED_FOLDER = System.getproperty("user.dir") + "/upload/";
public string upload(string nickname, MultipartFile f) throws IOException {
System.out.printIn("文件大小:" + f.getsize());
system.out.printIn(f.getContentType());
System.out.printn(f.getoriginalFilename());
System.out.printIn(System.getProperty("user.dir"));
saveFile(f);
return "上传成功";
}
public void saveFile(MultipartFile f) throws IOException {
File upDir = new File(UPLOADED_FOLDER);
if (!upDir.exists()) {
upDir.mkdir();
}
File file = new File(UPLOADED_FOLDER + f.getoriginalFilename());
f.transferTo(file);
}@在
RequestMapping(value = @"/uploa",method = RequestMethod.POST)中需要些POST方法
1 | <!-- MyBatisPlus依赖 --> |
- 前后端多采用Jason格式
1 | public String query(){ |
只需做出如下更改
1 | public List query(){ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 NIGZLA!



