Spring 中的跨域问题
项目做前后端分离,遇到了一个很常见的问题:跨域。想着每次遇到都要搜索解决,而且搜到的文章给出的解决方案又千奇百怪,不一定合适,于是萌生了总结一下的想法。 问题由来 跨站 HTTP 请求(Cross-site HTTP Request)是指发起请求的资源所在的 domain 与该请求所指向的 domain 不同的 HTTP 请求。比如,域名 abc(www.abc.com) 的某个标签...
项目做前后端分离,遇到了一个很常见的问题:跨域。想着每次遇到都要搜索解决,而且搜到的文章给出的解决方案又千奇百怪,不一定合适,于是萌生了总结一下的想法。 问题由来 跨站 HTTP 请求(Cross-site HTTP Request)是指发起请求的资源所在的 domain 与该请求所指向的 domain 不同的 HTTP 请求。比如,域名 abc(www.abc.com) 的某个标签...
Maven 中 scope 的取值一共有 compile、test、runtime、provided、system 这几种,其实没有必要专门写一篇博客来讲。但是最近遇到了一个相关的坑,其实也不能说是坑,主要原因是自己对这些东西一知半解,所以还是有必要深究一下。 compile compile 是默认的 scope,即不显式声明条件下 scope 就是 compile。compile ...
延时队列,顾名思义,是为了让一些任务不立即执行,放到队列里面等到特定时间后再执行。常用的场景有: 订单一直处于未支付状态,需要及时关闭订单,并退还库存 用户通过遥控设备控制智能设备在指定时间进行工作 eFuture 中未来邮件需要在用户指定的时间点发送 eFuture 是我最近刚完成的一个项目,主要目的是提供“未来邮件”的服务。其中,邮件需要被存储并且需要在特定时间点...
上一个项目的部署测试流程是:本地写完,本地测试,打包为 war 上传到服务器,服务器部署到 Tomcat 指定目录下,重启 Tomcat。这一套流程下来少说十分钟,而且如果刚上传完发现有 bug 的话,还要本地改完重新再来一遍。 重复这样的过程让人心神俱疲,好在现在已经有成熟的解决方案如 Travis CI、Jenkins等,今天我们就尝试着在 Java Web 项目中运用 Tra...
文法的定义和记号 [G = (V_N, V_T, P, S) \qquad (V_N \cap V_T = \varnothing, V_N \cup V_T = V)] 是 N.Chomsky 在 1956 年描述形式语言时首先给出的。同时,Chomsky 还对产生式的形式给以不同的限制而定义了四类基本的文法,分别称之为 0 型文法,1 型文法,2 型文法和 3 型文法。 明确定...
Spring Boot 项目开发完毕后,需要部署到 tomcat 服务器下,鉴于经常忘记部署流程,特地写了一篇博客来记录。 打包为 war 修改 packaging 基于 Intellij IDEA 构建项目有一个好处是大多数东西它已经自动帮你设置好了,不需要太多修改的地方。 修改 pom.xml 中的打包格式: <packaging>jar</packagi...
在 Spring 中,流行的涉及权限管理的框架有两个:Spring Security 和 Apache Shiro。但是去了解一下 Spring Security 就知道,简单的权限管理根本用不到那么复杂的功能。在自己的项目中,我更倾向于使用简单明了的 Apache Shiro。 我们以最常见的用户、角色、权限关系做例子。一个用户有多个角色、一个角色有多个用户、一个角色有多个权限、一个...
WebSocket WebSocket 为客户端、浏览器和服务端提供了双工异步通信的功能,即客户端(浏览器、Android)可以向服务器发送消息,服务器端也可以向客户端发送消息。 WebSocket 是通过一个 socket 来实现双工异步通信能力的。但是直接使用 WebSocket 协议开发程序会十分繁琐,因此我们使用它的子协议 STOMP,它是一个更高级别的协议。STOMP 协议...
有时候我们可能需要提供一些配置文件或安装包的下载链接,这种场景使用 CDN 有些杀鸡用牛刀,通过 Eginx 配置可以简单快速的提供功能。 Nginx 配置: server { listen 80; server_name download.akise.app; root /path/to/download.akise.app; location /...
nginx [Engine X] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. 起因 项目后端之前变更为了 Flask 框架 + RESTful API 模式,然后通...