目录
前言
本文主要介绍SpringBoot项目是如何搭建的,工程的结构介绍,以及常用的注解。
创建SpringBoot项目
可以在官网下载
也可以通过IDE创建
工程结构
static->存放静态文件
XXAplication文件-->用于启动项目
src/test/java-->用于存放测试文件,文件以Test结尾
src/main/java-->一般分为controller,model,mapper,service
- controller相当于MVC架构的C层,接口层,用于业务逻辑的实现以及根据前端的传参进行业务操作。
- model相当于MVC架构的M层,其属性值要与数据库一致。
- mapper相当于DAO层,与数据库关联,执行SQL语句,接口提供为service。
- service针对实际业务,与数据库结合,操作数据库的方法
pom.xml-->是各种依赖库的配置,可以在这里添加需要的依赖库。
application.properties-->配置文件,可以做一些自定义配置,可以去修改服务的端口号。
常用注解
@SpringBootAppication
项目启动类里的@SpringBootAppication
下面的博客写的很详细,推荐阅读。
@SpringBootApplication详解_@springbootapplication参数_adwaiter的博客-CSDN博客
@RestController
@RestController 是@Controller和@ResponseBody的结合体,@Controller是用于处理http请求的,@ResponseBody作用是该类所有API接口返回的数据,会以字符串JSON的形式返回给客户端。
@RestController会告诉Spring,控制器中所有的处理器方法的返回值都要直接写入响应体中。(spring实战第五版)
@RequestMapping
其可以处理http请求的方法,比如 GET、POST、PUT、DELETE。
每种请求方法也有对应的注解
GET请求 @GetMapping
POST请求 @PostMapping
PUT请求 @PutMapping
DELETE请求 @DeleteMapping
下面的两篇文章介绍的很详细:
@RequestMapping 注解使用技巧(完整详解)_Whitemeen太白的博客-CSDN博客
@RequestMapping详解_普通网友的博客-CSDN博客
一个简单的Get接口实现
package com.learn.startlearn.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping
public String hello(){
System.out.println("调用了hello接口");
return "hello java!";
}
}
@PathVariable
请求路径中的{XXX}占位符可以通过@PathVariable注解绑定到传参中。
详细可阅读这个博主写的,非常形象,一看就懂。
@PathVariable注解的用法和作用(Demo详解)_辰兮要努力的博客-CSDN博客
这里要注意一点:同一个url下、相同的请求方法、方法名唯一,否则编译不通过。
@RequestParam
用于传参时,将制定的请求参数赋值给形参,默认必传参数,也可以改成false,设置成非必传参数,也可以设置默认值,具体使用举例见下面的博客。
@RequestParam注解的详细介绍 - tomingto - 博客园 (cnblogs.com)
@RequestBody
用到最多的一种传参方式,接受前端传过来的json格式。
可以查看下面的这个例子,很简单的实现。
JSON处理(一):请求响应的JSON化 @RequestBody 和 @ResponseBody - 知乎 (zhihu.com)
@lombok
lombook里有很多实用的注解,通过这些注解的使用,不需再手写getter和setter等方法,简化了编程,具体使用原理可以参考这篇博客,但其使用也有弊端,也可以阅读下面的放弃使用lombok的这篇文章。
Lombok简介、使用、工作原理、优缺点_ThinkWon的博客-CSDN博客
为什么要放弃 Lombok ? - 知乎 (zhihu.com)
@Mapper
使用mapper,可以不用mapper映射文件,其包含的注解有@Select、@Insert、@Update、@Delete,其主要是对数据库进行操作,对应数据库的查询、插入、更新、删除。
这篇博客介绍得很详细。
@Autowired @Resource
用于引入依赖,Controller层可以引入mapper层的类
@Autowired和Resource两者的区别可以阅读下面的博客,很清晰。
@Autowired和@Resource到底有什么区别_一堆土豆33的博客-CSDN博客
@Param
给SQL语句中的参数赋值