基于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.项目包结构

基于springboot的适用于中小型项目的javaWeb基础框架_第1张图片

7.项目地址 

   https://github.com/dubaojiao/springboot-base-maven.git

四、结束

  学习+实践,有什么不妥之处欢迎留言批评教育。后期会加上 spring clould 生态的微服务框架。

你可能感兴趣的:(spring,boot)