1:web先分模块再分包
com.pig8.user
controller
vo : (req 和res)UserReq.java UserRes.java
pb
com.pig8.message
controller
vo : (req 和res)
pb
com.pig8.intercepters
2: api分包如下
com.pig8.user.service
model:User.java(javabean,这个相当于DO,接收了web端传过来的vo,然后可以进行转换)
exception:UserException(将异常更加细化,1是可以更加明确是哪个模块的什么异常,而不是统一的Exception,定位不到问题)
api:UserService(接口)
criteria:查询的对象封装
3: api-impl分包如下
com.pig8.user.service
impl:UserServiceImpl(接口的实现)
util:工具类
task:定时任务
dal:数据抽象曾
UserDal:(先查缓存,再去查数据库,再刷新缓存)
cache:UserCache.java(缓存层)
db:1:UserDao.java, 2:UserPO,3:UserExample...(数据库层)
search:UserSearch.java(搜索引擎)
重构一下这个代码:
1:开发效率至少提升30% :
1:对于之前的mybatis,比如查询同样的一个订单,不同的查询条件,需要写不同的sql,现在只用一个查询方法,传入一个Critiria对象,增对于一个订单的新增和修改不同的字段,也只用传入对象,而不用每次修改一个字段新增一个方法
2:java的PO对象对应自动生成,mapping脚本自动生成
3:之前的请求处理
2: bug至少减少20%
3:可读性至少增加40%
4:扩展性至少增加50%