自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 java.lang.OutOfMemoryError 问题排查

生产环境的java应用服务故障,排查日志发现OOM报错。以下介绍排查过程的记录:检查系统环境查看服务进程, CPU等使用情况top查看内存占用情况free -m查看磁盘容量(正常不会发生问题)df -h检查应用状态查看java应用进程ps -ef|grep java查看内存占用情况jmap -heap 进程号\查看具体占用情况 jmap -histo 进程号生成内存快照将内存快照文件输出到/data/logsjmap -dum

2022-05-16 01:42:20 394 1

原创 PostgreSQL 数据库常用语法总结

不同于Mysql,数据库Postgresql,在使用上语法还是有区别,以下记录常用的语法命令。数据与字段类型数据类型分类说明基本数据类型数据库内置数据类型,例如integer、char、varchar等复合数据类型需要用户自定义,所谓复合就是把多个基本类型融合在一起使用,复合类型的字段实际上就是一个特殊的数组域一种特殊的基本数据类型,由基本数据类型加上约束条件构成伪类型“伪”说明它不是真正的数据类型,这些数据类型不能作为表的列类型,只能作为函数的参数或返回

2022-05-16 01:39:10 3849 1

原创 SpringBoot + log4j2日志配置

配置示例application.propertieslogging.config=classpath:log4j2-spring.xmllog4j2-spring.xml<?xml version="1.0" encoding="UTF-8"?><Configuration status="INFO"> <Appenders> <RollingFile name="RollingFileInfo" fileName="/data/

2022-05-16 01:36:21 349

原创 Spring Cloud Gateway 修改响应数据

背景介绍有个金融类项目,客户对系统安全性比较看重,要求接口请求和响应的数据,都要按特定要求进行加密,防止敏感业务数据被抓包截取。现在设计流程已经拟定,客户端也解决了如何解密响应数据。服务端还没实现对响应数据进行加密。抽象出来,本质上要解决的问题是,如何修改响应数据。问题描述项目已经使用了Spring Cloud Gateway技术,响应数据可以在网关拦截。现在的问题是,如何修改响应数据。关键词:spring cloud gateway modify response body解决方案spr

2022-05-16 01:34:02 2986

原创 Spring Boot 修改请求url

背景介绍在做后端API接口的时候,被前端同事吐槽以前的接口URL没有遵循Restful API 规范,所以开会讨论,最终拍板确定,新做的要接口定义要照着标准规范来。找了找关于Restful API的文章,还是这位大佬说的容易理解:http://www.ruanyifeng.com/blog/2014/05/restful_api.html里面讲到了API的版本号。这里跟组员协商确定后,URL要也同样要突出版本号。所以在某个版本阶段开发的API接口,要指明URL的版本号。在实际代码中,发现如下问题

2022-05-16 01:32:00 2482

原创 Spring Cloud Gateway 读取请求传参

背景介绍有个业务需求,要提供一套API接口给第三方调用。在处理具体业务接口之前,设计上要先做个简单的鉴权,协商拟定了身份传参后,考虑到项目上已经用到了Spring Cloud Gateway ,就统一在网关模块做身份校验。所以在服务端获取到请求的时候,要先拦截获取到请求传参,才能做后续的鉴权逻辑。这里就需要解决一个问题:Spring Cloud Gateway 怎么读取请求传参?搜索关键词:spring cloud gateway get request body问题描述问题:Spring C

2022-05-16 01:27:51 6295 2

原创 解决 HttpServletRequest 流数据不可重复读

背景介绍甲方客户的生产系统,有安全风险预警和安全事件快速溯源要求,需要做一套日志管理规范。要求我们接入的系统,要对用户登录、注册、密码修改等重要场景,严格按照提供的格式,输出相应的日志。后续通过filebeat对接,收集我们系统上的日志信息。简单来说,就是应用系统,处理接口请求时,统一打印相应日志。问题描述成熟且常见的日志统一打印方案,就是使用AOP技术,自定义注解,在切面上使用环绕通知@Around,拦截请求,获取Controller类上方法的入参、出参即可。奈何业务场景使用到的接口,以前的

2022-05-16 01:18:32 894

原创 初识docker

什么是docker学习docker之前,要先了解容器的概念。docker是一个能够把开发的应用程序自动部署到容器的开源引擎

2017-08-06 23:41:01 453

原创 在基于springboot构建的maven工程中使用mybatis框架

1.在pom.xml文件下引用相关依赖包 <!-- 数据源--> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> <!-- mysql--> <

2017-04-21 08:15:25 760

原创 springboot的模板引擎

springboot默认页面映射路径为 classpath:/templates/*.html 同样静态文件路径为 classpath:/static/如果使用的模板引擎是HTML, 当controller返回视图时,直接写视图名称可以返回该视图。

2017-04-17 23:57:42 724

原创 重构方法

将某个逻辑提炼成一个函数 更改临时变量名称,使之语义更加清晰

2017-04-14 13:06:13 586

原创 基于nodeJS实现的几个功能

上传头像1.使用文件上传中间件multernpm install multer --save2.jade界面表单.form-group label File input input#file(type='file', name='file') p#result img#img(src='') button#upload.btn.btn-default 提交3.ajax获取发起请求(

2017-04-14 10:48:50 1796

原创 mean(mongodb+express+angularjs+nodejs) web开发在线参考资料

模板引擎jadeCNode社区-jade模板引擎使用jade官方文档jade APIejsejs官网工具HTML与jade转换在线代码格式化expressexpress中文网mongoosemongoose APICSDN-增删改查示例mongoose官方文档CNode社区-mongoose学习参考文档mongodbmongodb修改器mongodb find方法详解mongodb 关闭服务mong

2017-04-14 09:30:30 1129

原创 整洁代码

变量命名规范采用驼峰式命名使用读得出来的名称类名和对象名应该是名词或名词短语方法名应该是动词或动词短语常量命名全部大写抽象类命名采用Abstract或Base开头异常类命名使用Exception结尾测试类命名以它要测试的类的名词开始,以Test结尾名词长短与其作用域大小相对应注意事项不使用中文名称不使用小写字母l和大写字母O作为变量名不使用某些专门名词不以下划线或美元符号

2017-04-11 09:55:01 432

原创 使用springboot构建dubbo

springboot是基于注解配置,比起以往的springMVC臃肿的xml配置(虽然springMVC也可以使用注解进行配置),可以快速、简便地搭建起web服务。dubbo是阿里的一个分布式开源框架。搭建步骤:一、本地安装zookeeper并启动服务二、使用 idea新建一个springboot工程三、在pom.xml中添加配置,使用dubbo和zkclient(zookeeper的客户端)的ma

2017-04-09 22:35:04 2378

原创 mongoose使用总结

在mongoDB数据库中,时间的保存是ISODate类型,orm关系映射为java.util.Date类型,其保存的时间与我们会有8小时的区别(保存的时间比我们早了8个小时)。 转换格式使用moment.jsreq.params.xxxxx 从path中的变量 req.query.xxxxx 从get中的?xxxx=中 req.body.xxxxx 从post中的变量用mongoos

2017-03-16 23:19:31 506

原创 datatable插件使用

一、html页面导入必要插件:<link href="stylesheets/dataTables/dataTables.bootstrap.min.css" rel="stylesheet"/><script src="javascripts/dataTables/jquery.dataTables.min.js"></script><script src="javascripts/dataTa

2017-03-16 22:50:09 995

原创 【学习笔记】mongodb

1.save和insert操作的区别: 当遇到_id相同时,insert操作会报重复键的错误,而save会将新增语句变成更新语句,进而完成保存操作。2.InsertOrUpdate操作db.[documentName].update(查询器, 修改器, true)3.关于update操作update只会更新查询到的第一条数据要修改的新数据,需要包含查询条件里面的数据,否则原来带查询条件的数据会

2017-03-06 20:49:39 403

原创 mongodb shell

功能 命令 启动mongodb mongod –dbpath=”“ 打开mongodb shell mongo 127.0.0.1:27017 创建数据库 use [databaseName] 查看所有数据库 show dbs 添加文档 db.[documentName].insert({}) 查看所有文档 show collections 查看

2017-03-06 17:34:01 316

原创 [Git]本地代码上传到github

1.进入本地项目根目录,创建git仓库git init2.查看仓库的状态git status3.向缓冲区中添加文件git add . 4.保存仓库的历史记录git commit -m "First commit"5.查看提交后的状态git status6.查看提交日志git log7.在github上创建仓库8.添加至远程仓库git remote add orgin http:xx.git9.推送至

2017-02-21 21:31:02 313

原创 [积累]几个GitHub项目

前端UIjQuery的bsgrid框架集成bootstrap的gentelellaMEAN体系nodejs-mongodb-angularjs-web-development这本书对应的源代码nodeJSSpring体系spring,springmvc,spring boot

2017-02-18 16:33:11 411

原创 [IDE]jetbrains常用快捷键

本人在使用jetbrains系列的idea和webstorm工具,经过一段时间后,总结了以下常用的操作: 操作 含义 Ctrl+F 查找文本 Ctrl+D 复制当前行的内容 Ctrl+N 打开文件 Ctrl+E 打开最近的文件 Ctrl+G 定位到某一行 Ctrl+shift+R 全局查找、替换文本 Ctrl+鼠标左键 查看类的声明

2017-02-17 17:47:39 8508

原创 [学习笔记]关于HashMap的补充

哈希表由数组+链表组成。 HashMap存储的是一个线性数组,里面实现了一个静态内部类Entry,有key, value, next这些属性。put get null key index = hashcode % table.code解决hash冲突的办法:链地址法 再散列rehash过程什么时候会使用HashMap?他有什么特点?是基于Map接口的实现,存储键值对

2017-02-17 17:30:39 406

原创 [学习笔记]java方向需要了解的基础内容

1、document对象的父对象是什么? window对象2、什么是生产者模式?3、什么是发布订阅模式?4、Hashmap比ArrayList好在哪里?5、Tcp是怎么建立连接的?三次握手的过程是怎样的?可不可以不要三次?6、Tcp是怎么断开连接的?四次挥手的过程是怎样的?7、UDP和tcp有什么区别?8、Spring mvc的核心原理是什么?9、my

2017-02-17 17:29:29 422

原创 [学习总结]20161206

一、springMVC的注解几个注解含义/.do返回resMap二、mybatis里面的sql文件固定的三层嵌套查询总的配置sql文件里面的#语法oracle的日期格式三、jq的视图渲染jq的bsgrid表格插件文档:渲染封装工具:获取对话框跳页面两者的作用域问题:日历插件:日期筛选四、Jenkins打包 部署环境五、

2017-02-17 17:27:34 336

原创 [学习总结]jQuery涉及的主要内容

一、jQuery对象和DOM对象二、jQuery选择器三、jQuery中的DOM操作四、事件五、动画六、对表单、表格的操作七、jQuery中的Ajax

2017-02-17 17:25:57 533

原创 [学习笔记]java并发编程目录

章节 标题 内容 第一章 简介 线程会引发的问题 第二章 线程安全性 如果通过同步来避免多个线程在同一时刻访问相同的数据 第三章 对象的共享 如果共享和发布对象,从而使它们能够安全地由多个线程同时访问 第四章 对象的组合 介绍了构造线程安全类时采用的一些技术,例如将线程安全性委托给现有的线程安全类。 第五章 基础

2017-02-17 17:22:13 637

原创 [学习笔记]aj补充

ng-app ng-model {{}} 双括号标记 将模型变量添加到文本中 优点:不用另外注册一个事件侦听器或添加事件处理程序双向数据绑定: 输入框的任何变更会立即反映到模型变量 模型变量的任何变更会立即反映到文本中angularjs 模型-视图-控制器设计模式模型:JavaScript对象,数组,基本类型视图: 模板Templates,指HTML和css文件,可以自

2017-02-17 17:21:05 364

原创 [学习笔记]AngularJS

什么是AngularJS一款前端JS框架其他学习资料官网中文网菜鸟教程图灵入门教程中文社区相关讨论知乎:AngularJS 在实际应用中有哪些优缺点?百度知道:对比jQuery和AngularJS的不同思维模式

2017-02-17 17:19:56 343

原创 Struts2

Struts2框架主要通过过滤器对象拦截http请求,然后将请求分配到指定的action处理,基本流程如下: 拦截器也是Struts2的一个重要部分。客户端发送的请求从过滤器到Action之前,会创建action的代理对象,并通过一系列拦截器处理请求,最后交给指定的action处理。拦截器操作action对象的顺序如下: 附录 Struts官网

2016-10-13 20:53:24 229

原创 java中的HashMap

一、HashMap以键值对存储元素,有一个Hash函数,能根据key计算出对应的Hash值。使用hashCode()和equals()方法向集合、从集合添加和检索元素调用put()方法时,会根据key计算出对应的Hash值,然后把该键值对添加到对应的索引上。二、HashMap和HashTable的区别 HashMap HashTable 允许键和值是null 不允许键和值是nu

2016-10-09 22:17:58 259

原创 进程间通信的主要手段

进程间通信的主要手段管道(Pipe)及有名管道(named pipe)管道用于具有亲缘关系的进程; 有名管道具有管道的功能,还可以用于无亲缘关系的进行。信号(Signal)通知接受进程有某种事情发生 消息(Message)队列共享内存 使多个进程可以同时访问同一块内存空间信号量(Semaphore)用于线程之间的同步套接字(Socket)

2016-10-09 22:06:48 280

原创 MyBatis技术原理

一、基本构成二、生命周期三、映射器四、动态SQL五、解析和运行原理

2016-09-30 16:42:55 332

原创 大型网站技术架构(六):重新考虑构建大型网站

负载均衡加速静态内容访问速度的CDN缓存消息队列读库搜索引擎

2016-09-30 16:26:30 285

原创 大型网站技术架构(五):基于java的大型网站

一、架构演进过程二、分布式系统中的java中间件三、服务框架四、数据访问层五、消息中间件六、软负载中心与集中配置管理七、java应用故障的排查

2016-09-30 16:24:44 420

原创 大型网站技术架构(四):安全与稳定

安全一、Web攻击手段二、安全算法三、摘要认证四、签名认证五、HTTPS协议六、OAuth协议稳定一、在线日志分析二、集群监控三、流量控制四、性能优化

2016-09-30 15:47:21 867

原创 大型网站技术架构(三):关于架构体系的补充

一、面向服务的体系架构(SOA)1、RPC(Remote Process Call)远程过程调用RPC的实现包括客户端和服务端。一次RPC调用:客户端发送RPC请求到服务端,服务端根据客户端提供的参数执行请求方法,将执行结果返回给客户端。2、对象的序列化对象的序列化:将对象转换为二进制流的过程对象的反序列化:将二进制流恢复为对象的过程3、基于TCP协议实现RPCSayHelloService接

2016-09-30 13:45:41 402

原创 大型网站技术架构(二):架构体系的技术介绍

原理 技术 负载均衡 ZooKeeper 分布式缓存 memcache 持久化存储 MySQL,HBase,Redis 消息系统 ActiveMQ & JMS, HornetQ, RabbitMQ 垂直化搜索引擎 Lucene,Solr 日志收集 ActiveMQ-CPP,Chukwa 离线数据分析 Hadoop,MapReduce,Hive

2016-09-30 10:59:09 673

原创 大型网站技术架构(一):架构演变过程和架构体系

一、大型网站架构演化大型网站架构主要解决因庞大的用户、高并发的访问和海量的数据而引发的网站系统问题。演化历程如下: 阶段 内容 初始阶段 应用程序、数据库、文件等所有资源都在一台服务器上 应用服务和数据分离 整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器。 应用服务器:处理大量的业务逻辑,需要更快跟强大的CPU; 数据库服务器:快速磁盘检索和数据缓存,需要更快的硬

2016-09-29 22:01:33 964

原创 分布式缓存的一致性Hash算法

具体过程:(1)先构造一个长度为0~2^32的整数环,根据节点名称的Hash值,将缓存服务器节点放置在这个Hash环上。(2)根据需要缓存的数据的KEY值计算得到其Hash值,然后在Hash环上顺时针查找距离这个KEY值的Hash值最近的缓存服务器节点,完成KEY到服务器的Hash映射查找。补充:这个一致性Hash环使用二叉查找树实现,Hash查找过程实际上是在二叉查找树中查找不小于查找树的最小数值

2016-09-29 21:45:24 825

springmvc framework

springmvc官方文档

2016-08-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除