开发流程
完成对应部门管理和员工管理的需求
准备工作
注意:service还要写接口+实体类,mapper只写接口即可,controller是实体类
对应的三个注解
@RestController(方法返回值作为响应值)
@Mapper(控制反转IOC,这个是建对应实现接口的类)
@Service(控制反转IOC)
开发规范
对应的接口文档
先学会这周末阅读接口文档
这就是接口文档中部门管理的第一个功能
Restful风格
前后端之间的请求基于Restful
Restful规定前后端之间的url以及对应请求方式对应的意义
url对应定位访问什么
请求方法对应具体操作
同样user post请求接收新增 put则是更改操作
注意:常用+s的
统一响应结果
web一些小规范
先看需求和页面原型
再到接口文档(规定对应请求路径,请求参数,请求方式和响应数据)和思路分析
日志对象
@Slf4j//这个注解就是替代我们的日志对象创建语句
@RestController
public class DeptController {
// private static Logger log=LoggerFactory.getLogger(DeptController.class);//日志记录对象(固定代码)
//想要在哪个类,就是getLogger(对应的类.class),so我们在对应类上用lombok的@SLf4j,会自动创建对应的log
@Autowired
private DeptServiceImpl deptService;
@RequestMapping("/depts") //查询全部部门数据
public Result list(){
log.info("查询全部部门数据");
return Result.success();
}
}
log就是对应的日志对象
log.info可以在控制台输出你想输出的内容
可以原始的创建
不过推荐直接@Slf4j
会自动创建本类得到日志对象,名为log
指定请求方式和路径(用注解)
正常你如果只写
@RequestMapping("/depts")
方法
这样只能指定请求路径
不管什么请求方法都能进来
@RequestMapping(value = "/depts",method = RequestMethod.GET)
方法
这样的话指定了路径和请求方式,不过稍微有点麻烦
所以spring出来
@GetMappering("/depts")
@PostMappering("/depts")
还有很多请求方式如下图
查询全部部门
Deptcontroller
@Slf4j//这个注解就是替代我们的日志对象创建语句
@RestController
public class DeptController {
// private static Logger log=LoggerFactory.getLogger(DeptController.class);//日志记录对象(固定代码)
//想要在哪个类,就是getLogger(对应的类.class),so我们在对应类上用lombok的@SLf4j,会自动创建对应的log
@Autowired
private DeptService deptService;
// @RequestMapping(value = "/depts",method = RequestMethod.GET)
@GetMapping("/depts")
@PostMapping("/depts")
public Result list(){
log.info("查询全部部门数据");
//调用service查询数据
List<Dept> deptList=deptService.list();
return Result.success(deptList);
}
}
DeptService以及DeptServiceImpl
DeptMapper
简单的我直接用注解了,为什么dept爆红
就是idea的识别问题
只要你配置文件写对了就行
你也可以数据库进行连接就不爆红了
如图
postman结果
可以看到正确输出了
其实最后一步有个前后端联调,那个简单就不说了
几个注意
1.controller需要调用对应service的方法,来获取参数
2.我们这controllerDI(注入)的是service的接口类型
@Autowired
private DeptService deptService;
而具体的方法实现在对应具体service类,而且对应的deptMapper也要对应方法
然后,这个具体类里面注入我们的Mapper接口
3.Mapper这种简单语句直接写注解即可,不用xml文件那么麻烦
删除部门
就这个需求
根据id删除部门
再看接口文档
delete请求方式 然后
路径参数
@PathVariable注解,用于这种路径参数,在对应参数进行标注
正常参数是get是那种?参数名=…&参数名=…
然后post是写在请求体中
controller+service+mapper
controller
service接口
service实体类
mapper
postman以及数据库结果
删除对应id为5的数据库了
新增部门
只写一个部门名称参数2-10位(service里判断)
注意我们传的参数是json
所以我们在要用对应的对象接收
还要写一个@RequestBody,来进行json和对应pojo的属性匹配
controller+service+mapper
controller
service接口
service实体类
mapper
postman
结果
注意
你mapper里面是实体参数
你可以直接用里面的属性
比如传参dept
sql语句可以直接#{id}这种(id是dept里面的属性)
注意传参是json格式的
json格式controller要用bean对象参数接收的话
需要加一个注解@RequestBody!!!
controller优化简化网页开发(@RestMappering)
三个注解对应的开头申请多少/depts
可以简化
用@RestMapping(“/depts”)来直接写到类上
这样的话是这样的路径不用写了,如果后面还有别的参数就@…Mapping(“/{id}”)
完整请求路径:类上的RequestMapping的value属性+方法上的RequestMapping的value属性