Spring程序与SpringBoot程序对比
SpringBoot程序优点
内嵌Tomcat
REST简介
REST,表现形式状态转化
传统风格资源描述形式:
http://localhost/user/getById?id=1
http://localhost/user/saveUser
REST风格描述形式
http://localhost/user/1
http://localhost/user
优点:
按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
- http://localhost/users 查询全部用户信息 GET ( 查询 )
- http://localhost/users/1 查询指定用户信息 GET ( 查询 )
- http://localhost/users 添加用户信息 POST (新增/保存)
- http://localhost/users 修改用户信息 PUT (修改/更新)
- http://localhost/users/1 删除用户信息 DELETE( 删除 )
上述行为是约定方式,约定不是规范,可以打破,所以称REST风格,而不是REST规范
描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users,books,accounts......
1.修改属性
server.port=8081
logging.level.root=debug
spring.main.banner-mode=off
2. yaml语法规则
注意属性名冒号后面与数据之间有一个空格
yaml文件格式http://xn--yaml-t85fs66fflkpnf
分页操作需要设定分页对象Page
@Test
void textGetPage(){
IPage page = new Page(2,5);
userDao.selectPage(page,null);
}
IPage对象中封装了分页操作中的所有数据
分页操作时在MyBatisPlus的常规操作基础上增强得到的,内部时动态的SQL语句。因此需要增强对应的功能,使用MyBatisPlus拦截器实现
@Configuration
public class MPConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
使用快速开发
1. 设计统一的返回值结果类型便于前端开发数据
2. 返回值结果类型可以根据需求自行定义,没有固定格式
3. 返回值结果模型类用于后端与前端进行数据格式统一,也称为前后端数据协议
名称:@RequestMapping
类型:方法注解
位置:SpringMVC控制器方法定义上方
作用:设置当前控制器方法请求访问路径
范例:
@RequestMapping(value = "/users",method = RequestMethod.POST)
public String save(@RequestBody User user){
System.out.println("user save..."+user);
return "{'module':'user save'}";
}
名称:@PathVariable
类型:形参注解
位置:SpringMVC控制器方法形参定义前面
作用:绑定路径参数与处理器方法形参之间的关系,要求路径参数名与形参名一一对应
范例:
@DeleteMapping("/users/{id}")
public String delete(@PathVariable Integer id){
studentMapper.deleteById(id);
return "删除成功";
}/*指定id删除用户*/
@RequestBody @RequestParam @PatchVariable
区别:
应用
名称:@RestController
类型:类注解
位置:基于SpringMVC的RESTful开发控制器类定义上方
作用:设置当前控制类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能
范例:
@RestController
public class StudentController {
}
整合JUnit
名称:@SpringBootText
类型:测试类注解
位置:测试类定义上方
作用:设置JUnit加载的SpringBoot启动类
范例:
@SpringBootTest(classes = Application.class)
class SpringBoot01ApplicationTests {}
相关属性:classes:设置SpringBoot启动类
注意事项:如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的配置,也就是classes的设定
整合MyBatis
1. 核心配置:数据库连接相关信息(练什么?谁连?什么权限)
2. 映射配置:SQL映射(XML/注解)
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/demo
username: root
password: root