一个项目的一个项目的SpringBoot微服务改造过程微服务改造过程
SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、MyBatis,数据库使用MySQL,前端展示使用Freemark。
今年,我们对该项目进行了一次革命性的改进,改造成SpringBoot架构,并且把前后端分离,前端采用Vue框架。
一、使用SpringBoot架构进行改造
1.1 为什么使用SpringBoot
相比较于传统的Spring,SpringBoot具有以下优点:
部署简单,SpringBoot内置了Tomcat容器,可以将程序直接编译成一个jar,通过java-jar来运行。
编码简单,SpringBoot只需要在pom文件中添加一个starter-web依赖,即可帮助开发者快速启动一个web容器,非常方便。
配置简单,SpringBoot可以通过简单的注解方式来代替原先Spring非常复杂的xml方式。如果我想把一个普通的类交给Spring
管理,只需要添加@Configuration和@Bean两个注解即可。
监控简单,我们可以引入spring-boot-start-actuator依赖,直接使用REST方式来获取进程的运行期性能参数,从而达到监控的
目的。
1.2 一个常规项目都需要改造哪些部分
1.2.1 配置文件
SSO项目改造前充斥着大量的配置文件,主要包含以下这些部分:
静态资源相关
数据源
mybatis配置
redis配置
事务
拦截器拦截内容
监听器、过滤器
组件扫描路径配置
本文着重介绍以下几个部分:
1)静态资源处理
SpringMVC中,如果mvc:interceptors配置的URL规则如下,则不会拦截静态资源。
但是如果配置的是:
方案1: 在web.xml中配置<servlet-name>default</servlet-name>,用defaultServlet先处理请求如:
方案2:使用<mvc:resources />标签声明静态资源路径
方案3:使用mvc:default-servlet-handler/标签
SpringBoot解决方案:继承WebMvcConfigurerAdapter实现addResourceHandlers方法。
sso静态资源文件路径如图: