最近写了开关门的业务,我创建了一个apply 的Controller类,这个类里面有两个接口:一个取药,一个还药。在Controller类里面要写好每个接口的路径值,在一个大的功能接口类里面有很多个小的功能接口,大的接口类要用@RequestMapping注解写好路径,在小的功能接口里面也要用@PostMapping或者@GetMapping注解来表明路径。这个路径在前端调用这个接口的时候和postman测这个接口的时候会有用处。
取药的逻辑是:前端发给我一个我建立好的ApplyForGetChemicalsVo类型的一个对象,然后我拿到这个对象之后向下调用applyService接口(implements)然后这个接口在向下传递给ApplyServiceImpl实现类这里的形参和上面两层是一样的。具体的实现方法是在实现类里面编写的。
注意:要在Controller里面要创建private final ApplyService applyService这个属于是在这个接口里面需要向下调用什么service层就需要创建什么对象。同样的在实现类里面需要创建private final ApplyRepository applyRepository层的对象。在实现类里面要增加@Service注解来注明是一个Service实现方法。注意这个@Service注解是用来标注Service方法的,只要是对外接口的Service实现类都是要加注这个注解的。
在实现类里面需要调用Repository层的对数据库的操作方法,一般情况下是对数据库的查找以及更新操作的语句。
注意:Repository层的查询语句需要写@Query注解,更新语句需要在增加多余的两个注解:@Modifying@Transactional。还有就是如果Repository层的查询返回值是一个定义好的对象类呢么需要写道对应的类的Repository层。
对于Vo实体类的作用是在实现类里面需要存储数据,例如前端传回来的数据里面需要进行实例化给这个实体类,然后在这个实体类里面也会有所有数据定义好的数据格式。在实体类里面定义好具体的数据类型之后,要添加两个注解@Getter和@Setter添加好这两个注解之后就不需要在方法里面get和set方法也可以在 对象.get|set()的时候调用方法。