在Web应用开发过程中,一般都涵盖一些常用功能的实现,如数据库访问.异常处理.消息队列.缓存服务.OSS服务,以及接口日志配置,接口文档生成等.如果每个项目都来一套,则既费力又难以维护.可以通过Spring Boot的Starter来将这些常用功能进行整合与集中维护,以达到开箱即用的目的. 项目基于Spring Boot 2.1.5.RELEASE 版.项目地址: https://github.com/ronwxy/base-spring-boot 整个项目分为如下几部分: spring-boo…
之前写过几篇spring boot入门到实战的博文,因为某些原因没能继续. 框架更新迭代很快,之前还是基于1.x,现在2.x都出来很久了.还是希望能从基于该框架项目开发的整体有一个比较系统的梳理,于是有了这个基于2.x的系列,汇总到这里,持续更新. 希望对初学者或技术研发人员带来参考,也欢迎一起交流.探讨. Spring Boot从入门到实战:Spring Boot简介 Spring Boot从入门到实战:第一个Spring Boot应用 Spring Boot从入门到实战:Spring Boo…
日志是一个Web项目中必不可少的部分,借助它我们可以做许多事情,比如问题排查.访问统计.监控告警等.一般通过引入slf4j的一些实现框架来做日志功能,如log4j,logback,log4j2,其性能也是依次增强.在springboot中,默认使用的框架是logback.我们经常需要在方法开头或结尾加日志记录传入参数或返回结果,以此来复现当时的请求情况.但是手动添加日志,不仅繁琐重复,也影响代码的美观简洁.本文引入一个基于AOP实现的日志框架,并通过spring-boot-starter的方式完…
原文地址:http://blog.jboost.cn/2019/07/22/springboot-async.html 在业务开发中,有时候会遇到一些非核心的附加功能,比如短信或微信模板消息通知,或者一些耗时比较久,但主流程不需要立即获得其结果反馈的操作,比如保存图片.同步数据到其它合作方等等.如果将这些操作都置于主流程中同步处理,势必会对核心流程的性能造成影响,甚至由于第三方服务的问题导致自身服务不可用.这时候就应该将这些操作异步化,以提高主流程的性能,并与第三方解耦,提高主流程的可用性. 在…
问题 为什么开发web项目,spring-boot-starter-web 一个jar就搞定了?这个jar做了什么? 通过 spring-boot 工程可以看到所有开箱即用的的引导模块 spring-boot-starter-xxx 都在 spring-boot-starters 子模块中,且所有的 spring-boot-starter-xxx 模块中都没有代码,都是在其他包中就完成对应的功能.首先,分析其依赖 依赖 注意:图中的 Jakarta.xxxx 包是原来的 javax.xxxx 包…
Spring Boot中自带有Tomcat容器,因此Spring Boot项目只需要运行main函数,就可以运行,但是以往的web项目,我们习惯于使用自己安装的Tomcat运行或者使用Tomcat.Jetty插件来运行项目,方便简单,同时部署也是简单,只需要把生成的war包放在Tomcat的webapps下面,然后重启Tomcat,就可以访问项目了.那么Spring Boot想通过上面的方式部署和访问,应该如何操作呢? 其实主要的思路就是把Spring Boot自带的Tomcat屏蔽掉,然后引入…
搭建WEB项目过程中,哪些点需要注意: 1.技术选型: 前端:freemarker.vue 后端:spring boot.spring mvc 2.如何包装返回统一结构结果数据? 首先要弄清楚为什么要包装统一结构结果数据,这是因为当任意的ajax请求超时或者越权操作时,系统能返回统一的错误信息给到前端,前端通过封装统一的ajax请求统一处理这类错误信息(这样统一就避免每次都需要额外处理). 那如何包装结构呢? 先封装统一返回结果结构对象 JsonMessage: public class Jso…
数据库访问是web应用必不可少的部分.现今最常用的数据库ORM框架有Hibernate与Mybatis,Hibernate貌似在传统IT企业用的较多,而Mybatis则在互联网企业应用较多.通用Mapper(https://github.com/abel533/Mapper) 是一个基于Mybatis,将单表的增删改查通过通用方法实现,来减少SQL编写的开源框架,且也有对应开源的mapper-spring-boot-starter提供.我们在此基础上加了一些定制化的内容,以便达到更大程度的复用.…
多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa都可以配置多数据源. 本文在前一篇“Spring Boot从入门到精通(四)连接MySQL数据库(附源码)”文章中项目源码的基础上,来实现Spring Boot集成MyBatis和使用JdbcTemplate两种方式配置多数据源. Spring Boot集成MyBatis和使用JdbcTemplat…
JPA是什么? JPA全称Java Persistence API,是Sun官方提出的Java持久化规范.是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA主要为了简化现有的Java EE和Java SE应用的对象持久化开发工作和整合ORM技术实现持久化领域的统一.JPA是在充分吸收了现有Hibernate,TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点.从目前的开发社区的反应上看,JPA受到了极大的支持和赞…