加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

一个项目的SpringCloud微服务改造过程

发布时间:2019-08-07 10:28:30 所属栏目:优化 来源:黄玲峰
导读:SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、MyBatis,数据库使用MySQL,前端展示使用Freemark。今年,我们对该项目进行了一次革命性的改进,将其改造成SpringCloud架构,并且把前后端分离,前端采用Vue框架。 一、使用SpringCloud架构进行

sso静态资源文件路径如图:

一个项目的SpringCloud微服务改造过程

2)拦截器

SpringMVC配置文件内容:

拦截任何请求并且初始化参数,有些请求是不需要拦截的,有的请求登录后不需要经过权限校验直接放行。

  1. <mvc:interceptors> 
  2.     <mvc:interceptor> 
  3.         <mvc:mapping path="/**" /> 
  4.            <bean class="自定义拦截器PermissionInterceptor"> 
  5.            <!-- 未登录即可访问的地址 --> 
  6.           <property name="excludeUrls"> 
  7.           <list><value>请求地址<value></list> 
  8.           </property> 
  9.           <!-- 只要登录了就不需要拦截的资源 --> 
  10.           <property name="LogInExcludeUrls"> 
  11.           <list><value>请求地址<value></list> 
  12.           </property> 
  13.          </bean> 
  14.    </mvc:interceptor> 
  15.  </mvc:interceptors> 

SpringBoot中添加拦截器只需继承WebMvcConfigurerAdapter,并重写addInterceptors方法即可。

  1. /*** 拦截器 
  2. * @param registry 
  3. */ 
  4. @Override 
  5. public void addInterceptors(InterceptorRegistry registry) { 
  6.    registry.addInterceptor(permissionInterceptor). 
  7.            addPathPatterns("/**"); 
  8.    super.addInterceptors(registry); 

自定义的拦截器需要初始化一些参数,因此需要在注册拦截器之前注册,这里我们设置为懒加载。免登录拦截的路径,以及登录后不需要判断权限的路径都写在yml文件了,通过系统环境变量Environment获取值。

  1. @Autowired  
  2. @Lazy  
  3. private PermissionInterceptor permissionInterceptor;  
  4. @Autowired  
  5. private Environment environment;  
  6. /** 
  7. */ 
  8. @Bean 
  9. public PermissionInterceptor permissionInterceptor() { 
  10. PermissionInterceptor permissionInterceptor = new PermissionInterceptor(); 
  11. List<String> excludeUrls = Arrays.asList(environment.getProperty("intercept.exclude.path").split(",")); 
  12. List<String> commonUrls = Arrays.asList(environment.getProperty("intercept.login.exclude.path").split(",")); 
  13. permissionInterceptor.setCommonUrls(commonUrls); 
  14. permissionInterceptor.setExcludeUrls(excludeUrls); 
  15. return permissionInterceptor; 

3)数据库和MyBatis配置 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!