目录
1.IDEA创建Spring Boot项目
项目-->新建-->新模块-->选择Spring Boot项目
修改项目配置-->下一步
选择所需要的依赖项
点击创建-->可以删除多余文件
2.配置文件 yml porm
1.配置prom文件
(1). lombok是一个能自动插入到编辑器和构建工具的java库
常用注释:
(2). mybatis-spring-boot-starter SpringBoot整合Mybatis
(3) .druid数据源
(4) .MyBatis-Plus 的依赖
常用依赖网址:SpringBoot 常用依赖_org.joda的依赖-CSDN博客
2.配置Yml文件配置数据库
修改端口号
3.编写后端业务逻辑
数据库
创建数据库
根据需求 创建实体对象之间的关系
根据对象的属性,创建对应的表
建立各个表之间的关联
实体类pojo/domain
根据所设计的数据库及数据表,创建实体Java类改实体类一般放在domain包下
@Data 通过lombok依赖简化Getter 和Setter 等方法
Dao
根据实体对象创建 xxxDao接口文件,一般放在dao目录下
dao层又称为mapper层
存放对数据的CRUD操作 对数据的持久化操作书写SQL语句
@Mapper 定义为Mapper层 在使用Mybatis持久层框架来操作数据库时,我们可以使用@Mapper注解来将Mapper接口类交给Sprinig进行管理
@Insert 增加 @Delete 删除
@Update 修改 @Select 查找
Service(接口 + 实现类)
spring Boot中的service层是业务逻辑层,负责处理业务需求,封装业务方法,调用dao层的数据操作。service层一般是一个接口和一个实现类,用@Service注解标注实现类。service层的接口可以在controller层中调用,实现数据的传递和处理
创建对应的xxxService接口,里面声明方法 在实现类中对接口声明的方法实现
@Transactional 注解是Spring 框架提供的声明式注解事务解决方案,我们在开发中使用事务保证方法对数据库操作的原子性,要么全部成功,要么全部失败
创建实现类 一般放在 Imp文件下 命名为接口名+Impl
@Service 定义为service层 注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。
@Override 方法重写 注解告诉你下面这个方法是从父类/接口继承过来的
@Autowired 自动装配 dao层 @Autowired可以标注在属性上、方法上和构造器上,来完成自动装配。默认是根据属性类型,spring自动将匹配到的属性值进行注入,然后就可以使用这个属性
示例:AddUser 接口
AddUser 实体类
Controller
响应用户请求controller层是用来接受前台数据和返回页面请求信息的
创建控制层(设置请求路径),xxxController
@RestController
@Controller注解在一个类上添加@Controller注解,表明了这个类是一个控制器类。这里省略对Controller注解的说明了。@ResponseBody注解表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。格式的转换是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。
@Controller和@RestController的区别:
@Controller:在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面若返回json等内容到页面,则需要加@ResponseBody注解
@RestController:相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
@RequestMapping("/{访问路径}")
@RequestMapping注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法
@Autowired 自动装配service层
使用UserService接口的方法
\1. 自动装配:通过@Autowired注解,Spring会自动在容器中查找匹配的Bean,并将其注入到Controller中。
\2. 依赖注入:通过@Autowired注解,Controller可以方便地获取其他Bean的实例,从而实现对其他Bean的依赖注入。
\3. 解耦:通过@Autowired注解,Controller与Service或Component等对象解耦,降低了代码的耦合度,提高了代码的可维护性和可测试性。
/* 1.客户端要求返回的数据 accept = application/json @GetMapping(value = "/{id}",headers = "accept = application/json") @GetMapping(value = "/{id}",produces = "application/json") accept = application/xml @GetMapping(value = "/{id}",headers = "accept = application/xml") @GetMapping(value = "/{id}",produces = "application/xml")
2.客户端发送请求时带上的参数 content-type = application/json @GetMapping(value = "/{id}",headers = "content-type = application/json")
@GetMapping(value = "/{id}",consumes = "application/json") content-type = application/xml @GetMapping(value = "/{id}",headers = "content-type = application/xml") @GetMapping(value = "/{id}",consumes = "application/xml") */
@PostMapping 传入参数时 + @RequestBody
@DeleteMapping("/{id}") 传入参数时+@PathVariable
@PutMapping("/{id}") 传入参数时 + @RequestBody
@GetMapping("/{name}") 传入参数时+@PathVariable
@GetMapping
根据需求的不同,可以自定义不同的返回结果和传入参数的类型
4.编写前端协议
前端统一返回数据格式
一般放在controller层里面,新建一个Result实体类 构造getter,setter方法 构造函数
Object data放数据 Integer code状态码 String msg 注释信息
创建code实体类存放状态码
新建一个Code实体类 代表成功与否 与前端规定
Controller实体类
-
新增/删除/修改
-
查询/查询全部
根据需求自定义,仅为快速入门