开发流程
建议的开发流程仍是:Mapper层 > Service层 > Controller层 > 前端
**注意:**每层开发完成后,都应该及时测试,Mapper层、Service层都可以通过测试类中的测试方法进行测试,Controller层可以通过API文档的调试功能进行测试。
关于Mapper层
添加属性模板的本质是向“属性模板表”中插入数据。
如果制定的业务规则包括“属性模板的名称必须唯一”,在插入数据之前,还应该检查此名称有没有被占用,可以通过“根据属性模板名称统计数据的数量”来实现检查。
关于Service层
创建必要的POJO类型
添加数据或修改数据大多需要创建对应的POJO类型。
在项目的根包下创建pojo.dto.AttributeTemplateAddNewDTO类,在类中声明客户端提交请求时必须提交的参数对应的属性:
创建必要的业务接口,并声明抽象方法
在项目的根包下创建service.IAttributeTemplateService接口,并在接口中声明抽象方法:
public interface IAttributeTemplateService {
void addNew(AttributeTemplateAddNewDTO attributeTemplateAddNewDTO);
}
创建必要的业务实现类,并重写业务方法(抽象方法)
在项目的根包下创建service.impl.AttributeTemplateServiceImpl类,实现以上接口,在类上添加@Service注解,在类的内部自动装配AttributeTemplateMapper类型的属性:
@Service
public class AttributeTemplateServiceImpl implements IAttributeTemplateService {
@Autowired
private AttributeTemplateMapper attributeTemplateMapper;
@Override
public void addNew(AttributeTemplateAddNewDTO attributeTemplateAddNewDTO) {
}
}
关于业务方法的实现:
@Override
public void addNew(AttributeTemplateAddNewDTO attributeTemplateAddNewDTO) {
// 从参数对象中取出“属性模板的名称”
// 调用Mapper对象的“根据名称统计数量”执行统计
// 判断统计结果是否大于0// 是:表示名称已经被占用,则抛出异常(ERR_CONFLICT)
// 创建AttributeTemplate实体类的对象
// 通过BeanUtils.copyProperties()方法将参数对象中的属性值复制到实体类型对象中
// 调用Mapper对象的“插入数据”方法}
创建必要的测试类,编写并执行测试方法
在src/test/java下的根包下创建service.AttributeTemplateServiceTests测试类,在类上添加@Slf4j和@SpringBootTest注解,在类中自动装配IAttributeTemplateService接口类型的属性:
@Slf4j
@SpringBootTest
public class AttributeTemplateServiceTests {
@Autowired
IAttributeTemplateService service;
}
然后,编写并执行测试方法:
@Test
void addNew() {
AttributeTemplateAddNewDTO attributeTemplate = new AttributeTemplateAddNewDTO();
attributeTemplate.setName("测试数据001");
try {
service.addNew(attributeTemplate);
log.debug("测试通过!")
} catch (ServiceException e) {
log.debug(e.getMessage()); }
}