注:这里仅仅是一些我所注意的东西或者遇到的问题。
1、model划分,domain + mapper + po 三层
(1)、po 层是真正的实体类层,与数据库中标字段一一对应,extends AbstractPo。AbstractPo 是所有的 po 类的基类,它implements了 Domain 接口。Domain 直接引入包就可以,AbstractPo需要自己写,存在于高于domain + mapper + po 的包结构中的类。
(2)、domain层,也叫entity层,xml 封装 resultMap 时候返回值类型就是该类的全路径,extends **Po implements Domain ,写拓展时候常用到。在多表查询时候,会有想显示外表数据的时候,我们基本不修改po类,而是在这个类中写下你想要显示的属性和get、set方法,再去xml中另外封装一个结果集。我是这么写的...不知道规范不?
(3)、mapper层,放**Mapper.interface接口,extends GenericDao<E,P>,E 是你domain中相应的类,P 用的是String。相当于spring-MVC中的 dao 层,和数据库有交互。
mapper包中的接口文件与mapper。xml包结构必须一致,所叫的名称也必须一致,差别仅仅是后缀吗不同,否则扫描不到,会报绑定异常。
2、规定:所有的接口都extends GenericService <E,P>;
所有的实现类都extends AbstractService<E,P> implements **Service;
3、规定:**serviceImpl 类上面要标注@Service标签,否则扫描不到。
**controller类上面要标注@RestController或者@Controller,注意区别。
4、注意:@Autowired标签别忘记注入。
5、**Mapper.xml文件中尽量不要写注释的东西,有的时候会无缘无故报错,还找不到错误原因,所以就不写多余的东西。