CORS JavaScript 跨域方案 Java 实现
JSONP 方案
实现
在 Controller 中,直接返回 com.fasterxml.jackson.databind.util.JSONPObject 对象,前端代码中便可使用 JSONP 的方案接受。
@RequestMapping(value = "/test")
@ResponseBody
public Object test(@RequestParam(required = false,name = "callback") String callback) {
// 程序需要返回的数据
Map<String,String> result = new HashMap<>();
result.put("result",...
Gradle 打包实现生产环境与测试环境配置分离
Gradle 打包实现生产环境与测试环境配置分离
前篇:Maven 打包实现生产环境与测试环境配置分离
前篇是使用 Maven 进行的包管理,这次我们使用 Gradle 进行 Java Web Server 的包管理的配置。
配置 Gradle 配置文件
build.gradle 中配置相关的 resources 配置文件的目录。不同的资源文件放置在 src/main/filters/$env 目录下,其中 $env 目录为环境名,例如:dev、test、product 等等。且定义了默认环境为 dev 环境。
def env = System.getProperty("profile") ?: "dev"
sourceSets {
main {
r...
Spring Cache use Guava
前篇:Spring Cache 缓存注解实现
需求
现在缓存需要指定的过期策略,比如某段时间后过期或者多久没有使用过后过期。
开始
同样的,spring 配置中文件中,需要启用 cache 相关的注解。
<cache:annotation-driven/>
TestCache 示例:
public class TestCache {
@Cacheable(value = "testCache")
public String get(String name) {
return System.currentTimeMillis() + "";
}
}
并注册该缓存的 Bean。
<bean id="t...
LetsEncrypt SSL 证书签发(Nginx)
概述
官方文档参考: let’s encrypt getting started
域名认证过程有自动认证与手动认证,自动认证会启动一个监听 80 端口的程序来完成自动认证。手动认证使用参数 --webroot 来进行使用网站访问手动认证,认证时,会访问网址 /.well-known/acme-challenge/xxxxxxxx。
每次签发的证书有 90 天的有效期,所以我们还得在每个月去重新签发一个新的证书。
本文的操作是基于系统 CentOS 6.7 操作进行。
准备工作
在取得官方代码前,得先查看系统环境中是否安装全所需要的工具软件。
Git
yum -y install git
python 2.7 检查
/usr/bin/python -...
转 使用 Java 8 中的 Stream
来源: Think And COde
Stream是Java 8 提供的高效操作集合类(Collection)数据的 API。
从 Iterator 到 Stream
有一个字符串的 list,要统计其中长度大于 7 的字符串的数量,用迭代来实现:
List<String> wordList = Arrays.asList("regular", "expression", "specified", "as", "a",
"string", "must");
int countByIterator = 0;
for (String word: wordList) {
if (word.length() > 7) {
countB...