基于springboot的适用于中小型项目的javaWeb基础框架
作者:互联网
一、目的
本着java开源的宗旨,将自己近期学习和实践出的一套个人觉得还算可行的javaWeb基础框架分析展现出来,望各位大佬批评指导加以完善。觉得可行的地方可以学习研究,觉得不妥的地方欢迎指出。
二、选择
1.springboot (插拔式javaWeb开发框架,为什么选择它大家应该都清楚,它能为我们搭建一个项目减少很多时间)
2.spring-boot-data-jpa (个人觉得它是一个很好用的持久层库,内置强大方法解析SQL,可以很好的辅助对于SQL语句有短板的同学,对于单表上它很强大,但是对于多表关联查询我的方式是自己定义SQL。它还有一个好处就是对于实体类无需做映射关系【这是用mybatis最头疼的地方】)
3.redis (缓存 a 登录用户缓存 b 系统菜单缓存 c 某些业务需求的缓存)
4.mysql
5.druid (alibaba数据库连接池)
6.mongodb (选择项)
7.maven 包管理工具
8.IDEA2019 开发工具
9.JDK1.8
三、正题
本文只做项目讲解,文末会附上项目连接
1.请求拦截层--->过滤请求、登录验证。通过实现 HandlerInterceptor接口实现
2.方法拦截层---> 日志记录、统一的返回结果封装。AOP实现
3.业务逻辑判断选择使用异常抛出,为了不影响性能 自定义异常类并重写 fillInStackTrace方法
https://blog.csdn.net/itguangit/article/details/85341774 借鉴
4.API接口统一返回ApiResult类 ,属性如下
/** 结果码 */ private int code = 500; /** 消息 */ private String message = ""; /** 数据 */ private Object data; /** 异常 */ private Exception ex; /** 是否成功 */ private boolean success;
5.自定义参数验证注解类 Verification 通过 ParamVerification进行参数校验(后期会改为注解校验)
@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.PARAMETER,ElementType.FIELD}) public @interface Verification { // 是否可空 boolean nullable() default true; // 最大长度 int maxLength() default 0; // 最小长度 int minLength() default 0; // 描述(用于校验失败时提示所用) String desc() default ""; // 格式(预留) String format() default ""; }
6.项目包结构
7.项目地址
四、结束
学习+实践,有什么不妥之处欢迎留言批评教育。后期会加上 spring clould 生态的微服务框架。
duke645 发布了2 篇原创文章 · 获赞 3 · 访问量 1506 私信 关注标签:缓存,springboot,default,private,中小型,String,int,SQL,javaWeb 来源: https://blog.csdn.net/duke645/article/details/104411945