SpringBoot构建Restful Api项目开发——思考如何做项目框架
2018-03-10 00:40
645 查看
摘要: SpringBoot构建Restful Api项目开发——思考如何做项目框架
用SpringBoot搭建Restful Api项目框架,框架是组里一个经验特别丰富的高级工程师搭建起来的,看起来特别的漂亮(完善,教科书般的!)记录下来,作为学习的资料:
一、代码项目结构如下:
二、框架实现的要点
要点一、在MvcConfig中添加框架级的JSON包裹:
继承FastJsonHttpMessageConverter,重写两个方法:
protected object readInternal()
protected void writeInternal()
要点二、在MvcConfig中添加统一的异常处理:
1、定义框架通用异常CommonException
系统级异常、服务级异常,异常code,错误提示等
2、CommonHandlerExceptionResolver实现了HandlerExceptionResolver接口:
重写方法如下:
public ModelAndView resolveException()
要点三:在MvcConfig中配置请求日志拦截器
RequestLogInterceptor继承HandlerInterceptorAdapter抽象,重写两个方法:
public boolean preHandle()
public void afterCompletion()
要点四:在MvcConfig中配置权限验证拦截器
AuthInterceptor继承HandlerInterceptorAdapter,重写方法如下:
public boolean preHandle()
这里采用接入公司级的统一的passport,使用google guava做定时缓存,从cookie中取信息做校验。
要点五:DbConfig实现TransactionManagementConfigurer接口实现数据访问配置
1、使用alibaba的Druid数据库连接池
2、配置全局事物管理器
3、使用Jdbctemplate
要点六:RedisConfig使用切面的方式配置redis访问
@Aspect、@Pointcut、@After
要点七:TomcatConfig配置SpringBoot内嵌的Tomcat
配置Bean如下:
@Bean
public TomcatEmbeddedServletContainFactory createEmbeddedServletContainFactory()
要点八:LockConfig配置分布式锁共redis使用:
@Bean(name="defaultLock")
public LockUtil lockUtil(@Qualifier("jedisFactory") JedisFactory jedisFactory){
return new LockUtil(jedisFactory);
}
要点九:在maven中配置<profiles></profiles>来配置不同环境下的resouces配置文件
三、项目之外的思考
每一个项目都有一个人做基础框架,这就不仅仅是实现一个API就够了,还需要考虑很多:
1、统一的异常处理
2、API权限?
3、权限认证
4、统一的查询过滤
5、缓存可以如何做的更简单统一
6、代码分层
等
收获很多,做IT行业中的手艺人!
用SpringBoot搭建Restful Api项目框架,框架是组里一个经验特别丰富的高级工程师搭建起来的,看起来特别的漂亮(完善,教科书般的!)记录下来,作为学习的资料:
一、代码项目结构如下:
二、框架实现的要点
要点一、在MvcConfig中添加框架级的JSON包裹:
继承FastJsonHttpMessageConverter,重写两个方法:
protected object readInternal()
protected void writeInternal()
要点二、在MvcConfig中添加统一的异常处理:
1、定义框架通用异常CommonException
系统级异常、服务级异常,异常code,错误提示等
2、CommonHandlerExceptionResolver实现了HandlerExceptionResolver接口:
重写方法如下:
public ModelAndView resolveException()
要点三:在MvcConfig中配置请求日志拦截器
RequestLogInterceptor继承HandlerInterceptorAdapter抽象,重写两个方法:
public boolean preHandle()
public void afterCompletion()
要点四:在MvcConfig中配置权限验证拦截器
AuthInterceptor继承HandlerInterceptorAdapter,重写方法如下:
public boolean preHandle()
这里采用接入公司级的统一的passport,使用google guava做定时缓存,从cookie中取信息做校验。
要点五:DbConfig实现TransactionManagementConfigurer接口实现数据访问配置
1、使用alibaba的Druid数据库连接池
2、配置全局事物管理器
3、使用Jdbctemplate
要点六:RedisConfig使用切面的方式配置redis访问
@Aspect、@Pointcut、@After
要点七:TomcatConfig配置SpringBoot内嵌的Tomcat
配置Bean如下:
@Bean
public TomcatEmbeddedServletContainFactory createEmbeddedServletContainFactory()
要点八:LockConfig配置分布式锁共redis使用:
@Bean(name="defaultLock")
public LockUtil lockUtil(@Qualifier("jedisFactory") JedisFactory jedisFactory){
return new LockUtil(jedisFactory);
}
要点九:在maven中配置<profiles></profiles>来配置不同环境下的resouces配置文件
三、项目之外的思考
每一个项目都有一个人做基础框架,这就不仅仅是实现一个API就够了,还需要考虑很多:
1、统一的异常处理
2、API权限?
3、权限认证
4、统一的查询过滤
5、缓存可以如何做的更简单统一
6、代码分层
等
收获很多,做IT行业中的手艺人!
相关文章推荐
- 如何使用Maven和eclipse构建大数据开发框架项目
- 如何使用Maven和eclipse构建大数据开发框架项目
- 关于项目进度慢的思考----如何提高整体开发效率
- 如何将vs2012开发的基于.net framework 4.5框架的MVC4项目部署到windows server2003服务器上
- Slim - 超轻量级PHP Restful API构建框架
- 在大型Flex项目中如何构建高效的QTP测试框架
- 关于项目进度慢的思考----如何提高整体开发效率
- Win10开发:构建基于MVVMLight框架的Win10项目
- 编写GO的WEB开发框架 (十五): 目录结构及如何使用ecgo开发项目
- 如何为你的项目挑选适宜的Web开发框架?
- 通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(61)-如何使用框架来开发?
- 如何利用NB代码生成工具和NBear框架,快速开发WEB项目
- Android开发培训之如何使用该框架来构建自己的应用
- Intellij IDEA 13 利用Grails开发框架构建Java web项目
- 如何为你的项目挑选适宜的Web开发框架?
- 如何利用NB代码生成工具和NBear框架,快速开发WEB项目
- Restful WebApi项目开发实践
- 关于项目进度慢的思考----如何提高整体开发效率(转)
- 关于项目进度慢的思考----如何提高整体开发效率