spring boot 项目代理配置

原创 2017年07月17日 17:23:13

最近公司需要做一个项目,项目是前后端分离的,前端技术用的vue+element,后端用的是spring boot+shiro,为了开发的方便,项目分为了多个,后端主要提供接口,前段只放页面,在发布的过程中,由于需要跨域访问数据、获取数据,所以会出现跨域的问题。

在开发的时候,我们前端开发的时候是有设置vue 代理的(vue代理设置请看我另外的一篇博客),为了后期的方便,我们考虑到前端项目也设置代理,并且代理名字配置一样,这样的话,只要把编译后的vue文件,直接放到项目中,就可以访问,减少了很多的工作量,具体配置如下:

       

1.    在前端项目pom.xml中增加以下依赖:

<dependencies>中增加:

<dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-zuul</artifactId>

     </dependency>

<dependencyManagement><dependencies>中增加:

              <dependency>

               <groupId>org.springframework.cloud</groupId>

               <artifactId>spring-cloud-netflix</artifactId>

               <version>1.2.3.RELEASE</version>

               <type>pom</type>

               <scope>import</scope>

        </dependency>

2.    在项目配置文件中,增加代理配置:

#反响代理配置 

#这里的配置类似nginx的反响代理 

#当请求/api/**会直接交给listOfServers配置的服务器处理 

#当stripPrefix=true的时候 (http://127.0.0.1:8181/api/user/list-> http://192.168.1.100:8080/user/list) 

#当stripPrefix=false的时候(http://127.0.0.1:8181/api/user/list-> http://192.168.1.100:8080/api/user/list) 

 

zuul.routes.api.path=/api/**

zuul.routes.api.url=http://localhost:9901

#如果不加这行代码,每次请求都会生成一个新的session

zuul.routes.api.sensitiveHeaders= Authorization

ribbon.eureka.enabled=false

3.    增加过滤器

@Component

publicclass AssZuulFilter extends ZuulFilter{

 

private static Logger log =LoggerFactory.getLogger(AssZuulFilter.class);

@Override

public Object run() {

        // TODO Auto-generated method stub

        System.out.println("run");

        RequestContext ctx = RequestContext.getCurrentContext();

   HttpServletRequest request = ctx.getRequest();

 

   log.info(String.format("%s request to %s",request.getMethod(), request.getRequestURL().toString()));

 

        return null;

}

 

@Override

public boolean shouldFilter() {

        // TODO Auto-generated method stub

        System.out.println("shouldFilter");

        return true;

}

 

@Override

public int filterOrder() {

        // TODO Auto-generated method stub

        System.out.println("filterOrder");

        return 1;

}

 

@Override

public String filterType() {

        // TODO Auto-generated method stub

        System.out.println("filterType");

        return "pre";

}

 

}

4.    在启动文件Application中配置过滤器启动

@Bean

 publicAssZuulFilter assZuulFilter() {

     return new AssZuulFilter();

        }



请注意在配置代理的时候一定要增加   zuul.routes.api.sensitiveHeaders = Authorization  这一行代码,否则的话,每次请求都会生成一个新的session ,这个问题,一直以为是shiro 的问题,纠结了我好久。

版权声明:本文为博主原创文章,未经博主允许不得转载。

springboot中的 动态代理的选择测试代码

  • 2017年08月01日 17:15
  • 41KB
  • 下载

用SpringBoot 做代web理服务器

SpringBoot 做代web理服务器 因公司业务需要,把多个子系统集成到一个平台,但是又不希望把代码重做一遍,子系统用nodejs,主平台用java,所以不能直接融合到一起。 一个想...
  • himill
  • himill
  • 2017年07月19日 22:15
  • 581

spring boot http调用其他服务并解析

新建一个maven项目 pom和 上一个一样就行了,注意properties里面多一个 #tomcat server.port=8081 这样我就直接把他端口改了--------瞬间整...
  • habazhu1110
  • habazhu1110
  • 2017年09月14日 22:34
  • 1141

Spring boot使用ProxyFilter进行服务代理

Spring boot使用ProxyFilter进行服务代理前段时间在公司内负责一个open api平台搭建的项目,当时采用了spring boot来进行搭建整个项目,但是对应的代理服务确实是想了一段...
  • u012734441
  • u012734441
  • 2016年12月12日 10:03
  • 4113

Spring Boot AOP之Java 动态代理

最近重温《Head First 设计模式》,里面讲到代理模式时设计到Java动态代理。动态代理是Spring Boot AOP面向切面编程的基础。所以打算给自己做个笔记。 示例演示  先编写一个动态代...
  • webzhuce
  • webzhuce
  • 2017年05月29日 23:47
  • 2412

Spring Boot AOP代理

AOP 代理的两种实现: jdk是代理接口,私有方法必然不会存在在接口里,所以就不会被拦截到;cglib是子类,private的方法照样不会出现在子类里,也不能被拦截。 Java 动态代理...
  • xiaolyuh123
  • xiaolyuh123
  • 2017年08月09日 16:27
  • 454

springboot CGLib 方式实现AOP代理问题

在Spring Boot中引入AOP就跟引入其他模块一样,非常简单,只需要在pom.xml中加入如下依赖: org.springframework.boot spring-boot-s...
  • huang_550
  • huang_550
  • 2016年12月15日 16:46
  • 7488

【Nginx】Nginx + Tomcat + SpringBoot 部署项目

项目打包mvn clean instal上传到服务器上通过FTP或者其他方式上传到服务器的目录内CP到项目部署的文件夹内确保Tomcat是运行的状态复制过去后Tomcat会自动部署项目Nginx代理T...
  • diandianxiyu
  • diandianxiyu
  • 2017年05月11日 10:07
  • 3312

SpringBoot+Mybatis中使用动态代理方式动态切换datasource

背景: 项目原先只有一个数据库(开发工作已基本完成),后来又添加了一个库,两个库数据结构一致,查询逻辑基本一致,只是数据对应的年份不一样,客户提出的需求是根据可以自主选择查询不同年份的数据,而默认框架...
  • qq631431929
  • qq631431929
  • 2017年03月17日 16:14
  • 1741

Spring boot项目设定返回数据为JSON固定格式

1.配置处理json的配置类 package com.test.config; import com.alibaba.fastjson.support.spring.FastJsonHttpMess...
  • HLoach
  • HLoach
  • 2017年07月25日 16:55
  • 2255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring boot 项目代理配置
举报原因:
原因补充:

(最多只允许输入30个字)