没有合适的资源?快使用搜索试试~ 我知道了~
一个项目的SpringBoot微服务改造过程
5星 · 超过95%的资源 13 下载量 170 浏览量
2021-02-24
14:23:21
上传
评论 1
收藏 756KB PDF 举报
温馨提示
SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、MyBatis,数据库使用MySQL,前端展示使用Freemark。今年,我们对该项目进行了一次革命性的改进,改造成SpringBoot架构,并且把前后端分离,前端采用Vue框架。相比较于传统的Spring,SpringBoot具有以下优点:部署简单,SpringBoot内置了Tomcat容器,可以将程序直接编译成一个jar,通过java-jar来运行。编码简单,SpringBoot只需要在pom文件中添加一个starter-web依赖,即可帮助开发者快速启动一个web容器,非常方便。配置简单,SpringBoot可以通过简单
资源推荐
资源详情
资源评论
一个项目的一个项目的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规则如下,则不会拦截静态资源。
<mvc:mapping path="/*.do" />
但是如果配置的是:
<mvc:mapping path="/**" />
方案1: 在web.xml中配置<servlet-name>default</servlet-name>,用defaultServlet先处理请求如:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.ico</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
方案2:使用<mvc:resources />标签声明静态资源路径
<mvc:resources mapping="/resources/js/**" location="/js/" />
<mvc:resources mapping="/resources/images/**" location="/images/" />
<mvc:resources mapping="/resources/css/**" location="/css/" />
方案3:使用mvc:default-servlet-handler/标签
SpringBoot解决方案:继承WebMvcConfigurerAdapter实现addResourceHandlers方法。
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/resource/")//sso静态资源
.addResourceLocations("classpath:/META-INF/resources/")//swagger静
态资源
.setCachePeriod(0);//0表示不缓存
}
sso静态资源文件路径如图:
2)拦截器
SpringMVC配置文件内容:
拦截任何请求并且初始化参数,有些请求是不需要拦截的,有的请求登录后不需要经过权限校验直接放行。
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="自定义拦截器PermissionInterceptor">
<!-- 未登录即可访问的地址 -->
<property name="excludeUrls">
<list><value>请求地址<value></list>
</property>
<!-- 只要登录了就不需要拦截的资源 -->
<property name="LogInExcludeUrls">
<list><value>请求地址<value></list>
</property>
</bean>
</mvc:interceptor>
</mvc:interceptors>
SpringBoot中添加拦截器只需继承WebMvcConfigurerAdapter,并重写addInterceptors方法即可。
/*** 拦截器
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(permissionInterceptor).
addPathPatterns("/**");
super.addInterceptors(registry);
}
自定义的拦截器需要初始化一些参数,因此需要在注册拦截器之前注册,这里我们设置为懒加载。免登录拦截的路径,以及登
剩余13页未读,继续阅读
资源评论
- 申增浩2023-07-24这个文件对于项目的SpringBoot微服务改造过程进行了详细而清晰的阐述,让人能够轻松理解和关注重点。
- 是因为太久2023-07-24这份文件的语言简练而质朴,没有花言巧语,更加贴近人们在实际项目中遇到的问题和解决方案。
- 思想假2023-07-24它以实际案例为基础,通过具体的步骤和示例代码,帮助读者进行项目改造,具有很强的实用性。
- Period熹微2023-07-24总之,这份文件对于想要深入了解和掌握SpringBoot微服务改造的人来说是一份难得的优秀资料,值得阅读和借鉴。
- 爱吃番茄great2023-07-24作者运用恰当的技术词汇,结合自己的实践经验,使得内容更加务实,而不是空洞的理论研究。
weixin_38689824
- 粉丝: 6
- 资源: 946
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功