自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 日志打印过滤器

在我们项目开发过程中,为了方便上线后的问题排查,可能会有对每一个http接口打印日志的需求,打印的信息可能包括接口请求参数、接口响应参数、接口请求方式、响应时间、请求头信息等,为了便于快速在每一个项目中实现接入,我选择过滤器filter来实现这一目标。

2023-09-19 14:53:35 226

原创 将博客搬至优快云

将博客搬至优快云

2023-09-19 10:43:00 84

原创 大话设计模式之代理模式

代理模式是为了隐藏真实对象,为其提供一种代理以控制对这个对象的访问。UML类图:公用接口Subject类:1 /**2 * 定义共有接口3 */4 public interface Subject {5 6 void resquest();7 }真实对象RealSubject类:1 /**2 * 真实实现3 */4 public class R...

2018-05-27 15:26:00 101

原创 大话设计模式之装饰器模式

背景:一个人出去约会,给这个人添加一些装饰如穿什么样的上衣、下衣、领带、鞋子等等。装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。UML类图:被装饰的具体对象Person类: 1 public class Person { 2 3 private String name; 4 5 public Person() ...

2018-05-27 15:09:00 100

原创 大话设计模式之策略模式

背景:商场促销期间,可能会出现8折、5折的促销活动,也可能出现满100减10、满200减30的促销活动,设计一个收银系统。策略模式:定义了算法家族,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。UML类图:Demo:算法接口Strategy:1 public interface Strategy {2 3 void algorithmInterf...

2018-05-06 20:40:00 62

原创 大话设计模式之简单工厂模式

背景需求:模拟一个简单计算器。UML类图:说明:抽象类AbstractOperation有一个抽象方法getResult和两个成员变量,加减乘除分别继承AbstractOperation并实现getResult方法即可。OperationFactory是一个简单工厂方法,可根据入参实例化不同的子类。demo:AbstractOperation类: 1 public abstra...

2018-05-06 20:22:00 56

原创 有效提升大数据量写入excel的效率

在开发过程中经常会有需要将数据导出到 excel 的需求,当数据量很大,达到几万甚至几十万、几百万级别的时候,如何加快生成 excel 的速度呢?首先普及一下知识背景:Excel2003 及以下版本一张表最多支持 65536 行、256 列数据,所以要生成十万、百万级别数据就不能用 Excel2003 了;Excel2007 版本一张表最多支持1048576行,16384 列,基本可以满足百万级...

2018-05-05 16:38:00 161

原创 邮件群发问题

  在做邮件发送时遇到一个问题以及解决方式,记录一下。  我们公司的邮箱是Coremail的企业邮箱,群发邮件时发现,如果有一个邮箱地址不存在,那么本次群发会失败;而群发其他的邮箱时如qq邮箱,163邮箱如果有一个地址不存在,那么本次发送还是成功的。所以猜测可能与邮箱服务器有关。  为了解决给北纬邮箱群发的问题,我网上查了一下,看了一下 java mail 的 api,发现发送邮件调用 se...

2018-03-21 15:55:00 250

原创 nginx+tomcat多节点部署

在一台机器上想要将一个应用程序部署多个节点,可以通过nginx来实现。1、将tomcat复制多份,修改tomcat配置文件conf/server.xml,将端口号设置成不一样的2、将多个tomcat启动3、修改nginx配置文件conf/nginx.conf(根据实际情况配置,仅供参考)worker_process 2;events{ worker_connections 1...

2018-03-19 15:46:00 91

原创 SAML2.0 协议初识(三)——IDP

IDP,即提供身份认证服务的一端,通常,当 IDP 接收到 SP 发送的 SAML 认证请求后,解析 SAMLRequest 参数,包括 acs 地址、SP EntityId、绑定方式、是否加密等信息,当身份认证成功后便根据 SP 请求参数进行后续的通信。在绑定方式为 Http post 方式中,当 IDP 认证成功后,便生成 Response 信息返回给 SP,一个 Response 的 x...

2018-01-04 11:06:00 303

原创 SAML2.0 协议初识(二)---Service Provider(SP)

上一节,我们初步认识了 SAML 协议的概念和工作流程,这一节将介绍 SP 端的一些细节。通常情况下,SP 端是请求发起端,即当用户访问 SP 端的受保护资源时,由 SP 端向认证中心(IDP 端)发起认证请求。最终请求会回到 SP 端并由 SP 端将受保护资源授权给用户。假设,SP 有一受保护静态资源 index.html,通常情况下,为了保护该静态资源,SP 可以选择用过滤器对访问该资源...

2018-01-02 16:27:00 187

原创 SAML2.0 协议初识(一)

一、什么是 SAML 协议?SAML 即安全断言标记语言,英文全称是 Security Assertion Markup Language。它是一个基于 XML 的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。在 SAML 标准定义了身份提供者 (identity provider) 和服务提供者 (service provider),这两者构成了前面所说的...

2017-12-21 14:43:00 106

原创 输出流转输入流

当有输入流inputstream的数据想要写到数据流outputstream中时,这种情况比较简单,直接read inputstream然后write到outputstream中即可;当有输出流数据需要转换成输入流使用时,就不那么直观了,我最初的想法是输出流数据写到文件中,然后读文件就转成输入流啦,但是这种利用到硬盘的方法非常不可取的,后来上网查了一下,可以通过管道流PipedStream来实...

2017-08-15 17:10:00 148

原创 java获取真实的ip地址

直接上代码,获取请求主机的IP地址,如果通过代理进来,则透过防火墙获取真实IP地址 1 public class IPUtil { 2 3 private static final Logger logger = LogManager.getLogger(IPUtil.class); 4 5 /** 6 * 获取请求主机IP地址,如果通过代理进来,则透...

2017-08-15 16:56:00 69

原创 springboot开启事务管理

spring中开启事务管理需要在xml配置文件中配置,springboot中采取java config的配置方式。核心是@EnableTransactionManager注解,该注解即为开启事务管理器。@Configuration@EnableTransactionManagementpublic class TransactionConfiguration { @Bean...

2017-08-15 16:52:00 72

原创 SpringMVC请求使用@PathVariable获取文件名称并且文件名中存在.导致路径被截取的问题...

在SpringMVC中,当使用@pathVariable通过Get请求获取路径名称时,如果路径名称上存在小数点,则获取不到小数点后面的内容,会被Spring截取。比如我获取某一文件,路径是localhost:8080/file/test.jpg,通过@PathVariable获取test.jpg,如果不做任何处理,结果获取到的是test。这种情况有两种处理方式,一种是请求的时候在路径最后多加...

2017-06-28 09:52:00 60

原创 springboot解决第三方依赖jar包的问题

公司现在用的是springboot+maven,想要把一些老的项目都改成这种框架。但是一些老的项目中有好多第三方的jar包或者是自己的jar包,maven库上没有。最初的解决方案是一个个的deploy到maven库上,但是遇到太多的三方jar包就太费事了。网上查了一下发现maven有一种方式可以将本地的Jar包依赖到项目中而不需要先deploy到maven库上。具体做法如下:跟普通的java项...

2017-05-23 16:38:00 69

原创 Zookeeper之ZKClient的使用

maven依赖<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.4</version> </dependency>测试demo...

2017-04-27 09:41:00 64

原创 使用httpClient发送get\post请求

maven依赖1 <dependency>2 <groupId>org.apache.httpcomponents</groupId>3 <artifactId>httpclient</artifactId>4 <version>4.5.2</version>5 ...

2017-04-18 10:54:00 54

原创 Springboot集成权限管理框架apache shiro

一、名词解释网上一大堆二、pom依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.2.2</version> &...

2017-04-01 11:02:00 80

原创 JPA动态查询封装

一、定义一个查询条件容器/** * 定义一个查询条件容器 * * @param <T> */ public class Criteria<T> implements Specification<T> { private List<Criterion> criterions = new ArrayList<Cri...

2017-03-10 14:44:00 75

原创 小数数据精度问题Double与BigDecimal

做项目的过程中涉及到小数问题的时候,一般我都用Double类型,但是经常出现*.999999998这种数据,然后自己再手动四舍五入,简直傻的要死。明明就是一个1.51-1.38的问题,很简单怎么会得出这么古怪的数?该怎么做才不出现这种数?答案就是BigDecimal.Double类型的数据使用二进制表示的,它不可能将0.1或者10的其他任何次负幂,精确表示为一个有限长度的二进制小数。所以1....

2017-03-02 16:25:00 47

原创 java设计模式之观察者模式

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。观察者模式通常由4部分组成,抽象的被观察者、具体的被观察者、抽象的观察者、具体的观察者。代码示例1、抽象的观察者public interface Watcher { void update();}2、抽象的被观察者...

2017-03-01 16:50:00 90

原创 springboot 中使用AOP

网上关于AOP的例子好多,各种名词解释也一大堆,反正名词各种晦涩,自己写个最最最简单的例子入门mark一下,以后再深入学习。maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop&lt...

2017-03-01 14:08:00 43

原创 springboot 使用c3p0数据库连接池的方法

  使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了。所以使用c3p0连接池吧。  引入的maven依赖:<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId&gt...

2017-01-06 10:30:00 70

原创 解析JSON字符串

获取到json类型的字符串需要解析时,一种方式是将json字符串通过fastjson转换成一个具体的对象,有时候遇到一些特殊情况json字符串不固定时,上面那种方式不是很方便的情况下,可以直接将json字符串转换成JSONObject对象,然后去解析。 1 public static String get(JSONObject object,String key) 2 { 3 ...

2017-01-06 10:21:00 49

原创 springboot一个service内组件的加载顺序

先加载自身构造器,所以在构造器中初始化时若使用需要注入的(即@Autowired注解的)组件相关的方法,则会报null;然后加载注入的组件即@Autowired最后加载@PostConstruct注解的方法,在该方法内可以使用注入的组件。一个service初始化的一些操作根据不同情况可以选择在不同的地方进行初始化

2016-09-19 16:02:20 8212

原创 利用aether api实现从指定maven仓库下载jar包

最近公司做项目遇到一个需求,通过用户提供的groupId和artifactId以及version到指定maven库中下载jar包。平时的maven项目中,依赖的jar包都是通过pom文件设置,然后maven通过去下载jar包,现在要做的就是maven下载的这一功能。通过上网去查阅,知道了可以在命令行利用mvn dependency:copy -DgroupId=? -DartifactId=?

2016-08-03 21:05:00 4920

空空如也

空空如也

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

TA关注的人

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