所有的微服务是通过网关这个入口,在和前端对接口时,必然设计到有关跨域的问题。关于服务端跨域有很多方案,可以加注解(指定具体的路径允许跨域),也可以统一配置。另外如果不在网关入口这配置,势必会造成一个很大的影响,那就是前端通过网关入口调用其它微服务,通常会出现如下错误:Access to XMLHttpRequest at 'xxx' from origin 'xxx' has been been blocked by CORS&nbs...阅读全文>>
全局过滤器作用于所有的路由,不需要单独配置,我们可以用它来实现很多统一化处理的业务需求,比如权限认证,IP访问限制等等。官方文档:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories 基于官方我们编写全局过滤器代码package cn.itcast.gateway; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import&nb...阅读全文>>
Spring Cloud Gateway路由匹配是Spring WebFlux基础功能的一部分,在Spring Cloud Gateway中内置了很多路由断言工厂类。不同的断言工厂类针对HTTP请求的不同属性。多个断言工厂类可以使用逻辑“and”进行组合使用。官方文档:https://spring.io/projects/spring-cloud-gateway https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-after-route-predicate-factory ...阅读全文>>
日志接口(slf4j)slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback)。接口用于定制规范,可以有多个实现,使用时是面向接口的(导入的包都是slf4j的包而不是具体某个日志框架中的包),即直接和接口交互,不直接使用实现,所以可以任意的更换实现而不用更改代码中的日志相关代码。日志实现(log4j、logback、log4j2)Log4j:Apache的一个开源项目,可以控制日志信息输送的目的地是控制台、文件、GUI组件等,可以控制每一条日志的输出格式,这些可以通过一个配置文件来...阅读全文>>
在维护一个之前搭建的框架,SpringMVC框架,看着所有的配置都正常,而且也一直在使用,可是当我编写好代码时突然想到,我的逻辑里面要插入好几次SQL,这里面的事物是否管用呢?于是我测试了一下,竟然是不起作用。改配置,加注解,各种操作都试了,aop:config和tx:advice配置看着都对,可事物就是不起作用。偶然间看到网上有人说context:component-scan配置不当会引起事物不起作用,看了一下,果然,该框架扫描直接在SringMVC配置文件中写了一个根路径。于是修改SpringMVC只扫描Controller包<context:component-scan ...阅读全文>>
开头还是说点废话吧。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器...阅读全文>>
如何在springboot工程作为服务器,去接收通过http 上传的multi-file的文件。创建一个springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-starter-web的起步依赖。为例能够上传文件在服务器,你需要在web.xml中加入标签做相关的配置,但在sringboot 工程中,它已经为你自动做了,所以不需要你做任何的配置。因为项目中使用thymeleaf来渲染页面,引入thymeleaf<!-- ______________________________________________ t...阅读全文>>
JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量。JUnit 测试框架具有以下重要特性:测试工具测试套件测试运行器测试分类SpringBoot中引入junit,pom.xml中添加<!-- ______________________________________________ junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactI...阅读全文>>
首先,你要有一个Redis服务,本地建一个用于测试,参考windows下安装redis及其客户端http://www.javacui.com/tool/513.html redis的配置文件介绍http://www.javacui.com/tool/514.html SpringBoot中引入Redis,pom.xml中添加<!-- ______________________________________________ redis --> <dependency> <groupId>org.spr...阅读全文>>
定义拦截器,编写处理代码:package com.sbt.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springf...阅读全文>>