Giter Site home page Giter Site logo

springrestfuldemo's Introduction

基础功能

  1. REST(@RestControllerSpringMVC
  2. 数据绑定和校验(@RequestBody@Valid@PathVariable
  3. 访问MySQL数据库(JPA
  4. DTO、DO等POJO的相互转换(ModelMapper
  5. 统一结果处理(ResponseResult
  6. 统一错误处理(@ControllerAdvice@ExceptionHandler
  7. 日志(logback
  8. 跨域(WebMvcConfigurerAdapter
  9. 统一认证、鉴权(JWTSpringSecurity
  10. 集成Swagger2(API文档管理)(Springfox
  11. 加盐随机化Hash保存密码(Bcrypt
  12. 请求日志
  13. HTTPS(letsencrypt

高级功能

  1. 缓存:Redis(spring-data-redis@EnableCaching
  2. 数据库设计(MySQLWorkbench
  3. 根据数据库生成JavaBean(IDEA的生成脚本
  4. 数据库升级(flyway
  5. 数据库备份(cron
  6. 多环境配置(profile),外部化环境配置,对开发透明(docker环境变量
  7. 集成Jenkins(自动测试、自动部署) (gitlab-ci
  8. MySQL数据读写分离
  9. HTTP缓存
  10. 权限拦截,参考
  11. 单元测试

注意

  1. 禁止数据库服务访问本地文件系统
  2. SQL语句注入问题

Libraries

主要有:

  1. Spring Boot
  2. Spring Web
  3. Spring Data JPA
  4. Spring Security

API文档管理

其他

  1. Lombok 消除冗余的Java代码,如:setter、getter方法
  2. ModelMapper 可以转换DO、DTO等POJOs
  3. Flyway 数据库迁移工具

IDEA插件

  1. JRebel,热加载(必须)
  2. Alibaba Java Config Guidelines(必须)
  3. Lombok(必须)
  4. FindBugs
  5. QAPlug-PMD
  6. SonarLint

项目分层

按模块+职责分包分层。 每个模块均有:ControllerServiceDAO三层

  1. Jar包
  2. Docker: docker-compose up -d mysql redisdocker-compose down

项目规范

  1. 所有API在路由上区分移动端、后台和微信端。如:/web/v1/user/app/v1/wx/user/v1/user
  2. 所有API改动需仔细想想是否会影响旧版本
  3. 查询参数,如果多个,禁止使用诸如keyword等此类宽泛的用词
  4. 若适当,可将不同端的接口拆分成不同的Controller,但Service可共用一个
  5. 出API时先想想以后发生改动怎么办

springrestfuldemo's People

Contributors

wxcchd avatar

Stargazers

wxc_chd avatar

Watchers

wxc_chd avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.