- 博客(90)
- 资源 (1)
- 收藏
- 关注
原创 Spring-cache + redis 自定义注解
需求: API 端需要调用我这儿的一个接口,接口的数据是Mysql 全表的数据(涉及很多张表的数据拼接), 于是引入了Spring -cache 和 redis 缓存,Service 层的代码如下:@Override @Cacheable(value = "cache:apiPolicy") public List<PolicyMain>
2018-09-10 13:32:38
973
原创 Springboot2.0 + redis 实现 cache
Spring针对不同的缓存技术,需要实现不同的cacheManager, Spring定义了如下的cacheManger实现。在这里我用的是rediscache, 主要存储机场表和航班表。 在其中看了很多博客, 最好贴一份可用的redis 配置1.Java代码配置RedisCache@Configuration@EnableCachingpublic class Red...
2018-09-05 14:15:51
1129
原创 Springboot 中Swagger2的配置和使用
接口测试Swagger2文档方便Restful接口开发,并且配置十分简单1.引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>...
2018-07-17 19:52:03
508
原创 Springboot 下 Druid 的使用
搭了一个Springboot + jpa + druid的架子,记录一下druid 的配置。 Mybatis 下类似。1.引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <versi...
2018-07-17 19:46:38
437
原创 Vue.js + axios 实现excel下载
在以前实现的excel中,都是用&lt;a href="xxx"&gt;DOWNLOAD&lt;/a&gt;来实现的。但是由于项目中采用了token验证,上述的做法就不再可行了。在网上找了很多资料,最后给出一种可行的方案。1.后端返回相应的请求头Content-Type: application/octet-stream(下载用的流)2.axios设置expor...
2018-07-02 18:20:07
8791
2
转载 Java8 之 OPTIONAL 妙用
在掘金上看到了一篇关于java8新特性OPTIONAL的使用, 想来平时编写代码过程中判null的情况还是很多,特意记录下。User 结构public class User { private String name; public String getName() { return name; }}使用optional 获取 nameS...
2018-06-16 21:10:52
685
原创 HTTPS = HTTP + 加密 + 证书 + 完整性保护
HTTPS并非是一种新协议,是身披SSL的HTTP协议,只是HTTP通信接口部分用SSL和TLS协议代替而已。 HTTP 的缺点: 1. 通信使用明文,内容可能会被窃听——-加密 2. 不验证通信方的身份,可能遭遇伪装—–证书 3. 无法验证报文的完整性 ————–完整性保护基于HTTP的局限性,出现了HTTPS简单地来说,HTTPS = HTTP + 加密 + 证书 +完整...
2018-04-12 11:00:36
2036
原创 浏览器下载csv 文件工具类
/** * @author : dai * @description: 浏览器下载CSV文件 * @date: 下午4:42 18/4/3 */func WriteCsv2File(headers []string,result [][]string, filename string,ctx *web.Context) { csvBuf := new(bytes.Buffer)...
2018-04-03 17:20:16
755
原创 go 实现从服务器导出excel 到浏览器
需要引入 “github.com/tealeg/xlsx” 这个第三方库关键代码:file := xlsx.NewFile()sheet,_ :=file.AddSheet("sheet")//设置表格头row := sheet.AddRow()var headers = []string {"row1","row2"....}for _,header := range h...
2018-03-30 17:22:17
6718
3
原创 go web 之socket 和 websocket 学习
socket 介绍socket 是客户端和服务器连接的桥梁,socket 用于web浏览器和服务器的通信,socket是一种文件描述符。 socket 分为两种 流式socket 和 数据报式socket 1. 流式socket是一种面向连接的Socket,针对于面向连接的TCP服务应用 2. 数据报式socket是一种无连接的socket,对应于无连接的UDP服务应用socke...
2018-03-27 20:18:01
1822
原创 使用go的http包建立一个简单的web 服务器
go 直接监听tcp 端口,做了nginx 的事,用go实现一个web 服务器非常简单,只需要调用http包的两个函数就可以package mainimport ( "net/http" "fmt" "strings" "log")func sayhelloName(w http.ResponseWriter,r *http.Request){ ...
2018-03-26 19:38:11
653
转载 Nginx 简介
Nginx简介Nginx是一款高性能的HTTP服务器和反向代理服务器,同时支持IMAP / POP3 / SMTP代理服务SMTP:(简单邮件传输协议)即简单邮件传输协议。POP3,全名为“邮局协议 - 版本3”,即“邮局协议版本3”IMAP(Internet Mail Access Protocol,因特网邮件访问协议)以前称作交互邮件访问协议Nginx的工作原理由内核和...
2018-03-21 09:50:57
699
转载 Promise 的基础用法
Promise 的含义Promise 是异步编程的一种解决方案,比传统的解决方案–回调函数和事件--更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了语法,原生提供了Promise所谓Promise ,简单说就是一个容器,里面保存着某个未来才回结束的事件(通常是一个异步操作)的结果。从语法上说,Promise是一个对象,从它可以获取异步操作的消息。 Promise ...
2018-03-07 19:54:07
74084
原创 Vue 之状态管理 vuex 学习
Vuex 介绍Vuex 是一个专为 Vue.js 应用程序开发的 状态管理模式。 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。举一个很常见的例子:子组件调用父组件一般通过event 来完成,比如 this.$emit()…一旦业务复杂,组件越来越多,调用关系越来越复杂的时候,我们可以用Vuex 来集中管理这些组件的变化一.状态管理模式...
2018-03-07 16:24:52
1497
原创 从java到前端学习的一些总结
我所学习的java方向 也称为Java Web, Java 主要有2个方向,android 和 JavaEE, 学习javaEE是因为JavaEE的知识体系后期对应的岗位是架构师,我当时的考虑是以后往服务器方向发展,Javaweb 中的学习知识太多太多,框架上,从简单的servlet 到 一堆配置文件 ssh 再到ssm 最后出现了零配置文件的springboot(其实是代码配置),我一路...
2018-03-04 13:24:58
950
原创 webpack的学习
介绍:webpack 是一个JavaScript 应用程序的静态模块打包器, 当webpack处理应用程序时,它会递归地构建一个依赖关系图(包含应用程序需要的每个模块),然后将所有这些模块打包成一个或者多个bundle.入口[entry]:构建其内部依赖图的开始,指示webpack应该使用哪个模块。 webpack 会找出所有和入口起点依赖的(直接和间接)模块和库。 每个依赖项随...
2018-03-01 16:57:12
354
原创 jaxb实现xml 和 json 之间的转换
jaxb2 实体类转xml:public static String toXML(Object obj, String encode, boolean format, boolean fragment) { try { JAXBContext jaxbContext = JAXBContext.newInstance(obj.getClass());
2018-02-06 14:57:06
1021
原创 Jquery 重置input 和 select
Jquery 重置 input 和 select/** * 通用清除方法(清除input 和 select 的内容) * jq 1.6以上attr() 改成 prop */ var resetAll = function(){ $("input[type='text']").prop("value",""); $('se
2018-01-15 10:48:40
2008
原创 git提交代码到代码仓库
git 提交代码到代码仓库1.创建一个空的本地仓库 命令:git init,会在项目中生成一个.git文件 2.将项目的所有文件添加到缓存中 命令:git add . 3.查看文件状态 命令:git status 4.将本地代码commit到git 仓库 命令:git commit -m(描述) 5.将本地的库链接到远程库 命令: git remote add origin
2018-01-10 17:49:31
1209
原创 @Value 读取yml 文件
首先,@Value需要参数,这里参数可以是两种形式: - @Value(“#{configProperties[‘t1.msgname’]}”) - @Value(“${t1.msgname}”);我项目中使用@Value注解读取yml文件中的配置使用方式: @Value("${tag}") private String valuevalue 值为空的原因: -
2017-12-20 15:21:33
10389
原创 SpringBoot Rest-api开发
最近要开发Restful风格的WebService,但是不是很了解Rest-Api的开发流程,于是spring官网看了搭建rest-api的例子,从pom.xml开始,简单记录下一个Rest-api的开发。一.pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"
2017-12-20 15:20:09
530
原创 Mac 下 command not found: mvn
在Mac下一般配置了Maven的环境变了一般都不会提示,但是如果使用zsh的扩展之后,系统默认的环境变量配置文件会发生变化,必须在~/.zshrc文件下再次添加环境变量。打开~/.zshrc文件,添加如下环境变量即可:export MAVEN_HOME=/usr/local/maven3export PATH=${PATH}:${MAVEN_HOME}/bin
2017-11-24 21:48:50
10899
原创 Mac 下显示隐藏文件
显示:defaults write com.apple.finder AppleShowAllFiles TRUE ; killall Finder 隐藏:defaults write com.apple.finder AppleShowAllFiles FALSE ; killall Finder
2017-11-24 11:26:31
288
原创 spark程序的运行过程
1.先通过idea获得程序打包后的jar2.进入spark的安装目录,启动master: ./sbin/start-master.sh打开浏览器,输入http://localhost:8080/ 启动worker: ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://1598007611deMacBook-Air.lo
2017-10-23 20:41:24
586
原创 java实现 阿拉伯数字转换为汉字数字
private String toChinese(String string) { String[] s1 = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" }; String[] s2 = { "十",
2017-09-29 19:32:46
10497
1
转载 SpringBean的作用域
什么是Bean: bean:在spring中,组成应用程序的主体以及springIoc管理的对象被称为bean,简单来说,bean是spring容器初始化,装配以及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。 Bean的作用域: 创建一个bean定义,其实质是用该bean定义对应的类来创建真正实例的“
2017-09-26 10:17:02
523
原创 javaEE项目中WEB-INF目录
/WEB-INF/web.xml Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 /WEB-INF/classes/ 包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。 /WEB-INF/lib/ 存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar
2017-09-25 22:01:30
828
原创 String 和Integer中 == 和 equals的使用
equals的作用:用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型“==”操作符的作用: 1、用于基本数据类型的比较 2、判断引用是否指向堆内存的同一块地址。 public static void main(String[] args){ String a = "Hello"; String b = "Hello";
2017-09-25 20:29:39
523
原创 文本相似度算法----动态规划求子串
public class Computeclass { /* * 计算相似度 * */ public static double SimilarDegree(String strA, String strB){ String newStrA = removeSign(strA); String newS
2017-09-18 12:25:23
813
原创 tfidf算法+余弦相似度算法计算文本相似度
TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆向文件频率(Inverse Document Frequency)。/** * 直接匹配2个文本 * * @author rock * */public class GetText {
2017-09-13 16:43:56
6852
4
原创 maven 打包.bat文件和安装jar到仓库
直接上pom.xml<build> <resources> <resource> <directory>resources</directory> <includes> <include>main.properties</include> </inc
2017-09-13 16:33:09
907
原创 使用Promise异步发送多个fetch
ES6 原生提供了 Promise 对象。所谓 Promise,就是一个对象,用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步处理。Promise 对象有以下两个特点。(1)对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)
2017-08-24 17:27:34
1884
原创 TCP/IP 协议:三次握手与四次挥手
1.序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 2.确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 3.标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下: (A)URG:紧急指针(urgent pointer)有效。
2017-08-23 23:00:37
404
原创 javascript实现把指定元素移动到第一位
//移动数组第index位置到第一个元素 static itemtoArraytop(Arr,index){ var temp = Arr[index]; if(index == 0){ return Arr; } for (var i = 0; i < Arr.length; i++) { if (Arr[i] === Arr[index
2017-08-22 17:58:37
6294
原创 MySQL 性能优化
1.查询缓存优化查询 大多数的mysql的服务器都开启了查询缓存,这是提高性能最有效的方法之一。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了//查询缓存不开启 $r = mysql_query( "SELECT username FROM user WHERE signup_date >= CURDATE()");
2017-08-15 21:37:30
413
原创 node.js事件循环
node是单进程单线程的应用程序,但是用过事件和回调支持并发,所以性能非常高。 Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调
2017-08-15 16:16:04
437
原创 node.js 初体验
用node编写一个web服务器const http = require('http');const hostname = '127.0.0.1';const port = 3000;const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'te
2017-08-15 11:24:57
403
原创 遍历Map的方式
方法一:通过Map.keySet遍历key和valueMap<Integer,String> map = new HashMap<Integer,String>();Set<Integer> set = map.keySet();for(Integer key : set){ String value= map.get(item); System.out.println(key
2017-08-14 23:42:30
351
原创 循环删除List中的元素
1。通过for循环删除List中的元素for(int i = 0;i<list.size();i++){ if(list.get(i).equals(" "){ list.remove(i); }}这种方法存在的问题是,删除一个元素后,数组的大小发生了变化,而索引也在发生变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素
2017-08-14 23:24:55
550
原创 java中的乐观锁与悲观锁
一.乐观锁与悲观锁:悲观锁:总是假设最坏的情况=>每次拿数据的时候都会上锁,不同线程同时执行时,只能有一个线程执行,其他的线程在入口处等待,直到锁被释放.。 应用:传统的数据库,java 同步synchronized关键字。乐观锁: 每次拿数据的时候都不会上锁。不同线程同时执行时,可以同时进入执行,在最后更新数据的时候要检查这些数据是否被其他线程修改了(version版本和执行初是否相同),没有修
2017-08-10 22:41:16
1025
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人