自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

有灯就可以编程的博客

有灯就有人,有电脑就可以编程

  • 博客(61)
  • 收藏
  • 关注

原创 Redis分布式锁的实现

//锁名称 public static String LOCK_PREFIX = "redis:lock:"; private static final String SET_IF_NOT_EXIST = "NX"; private static final String SET_WITH_EXPIRE_TIME = "PX"; public static final String UNLOCK_LUA; static { StringBuilde.

2020-09-17 11:44:59 308

原创 SpringBoot集成Xxljob 1.9.0 实现定时任务

一,引入依赖<!-- xxl-job-core --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>1.9.0</version> </dependency&gt

2020-08-05 20:32:04 633

原创 EasyExcel实现Excel简单导入

一、简介 EasyExcel是阿里开源的一款工具,用于Excel的操作,导入导出之类,操作简单,效率高。二、基本使用1、maven引入该架包<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</a...

2019-12-01 18:01:29 1140

原创 java.net.SocketException: Connection reset 异常之爬虫场景排查解决

场景:爬虫微服务爬取某一网站内容,经测试,已通过,并在多家客户部署,但是其中一家出现了该问题。排查过程:首先,因为在本地和其它客户那里,都是正常使用,首先排除掉了代码问题。然后,ping 域名,telnet端口测试,因为是https的请求,所以telnet 域名 443,测试发现,ping域名能通,443端口不通,于是打开443端口,再次测试,还是同样的异常,这个时候就陷入沉思了。...

2019-09-18 09:15:19 1551

原创 Java正则表达式之Matcher、Group小用(一)

使用场景:使用表达式引擎Aviator的时候,需要将表达式中指定规则的数字的常量做处理,变成其能识别的变量,也就是一个字符串中需要匹配多处并处理。表达式如下,这里的3303、3300、1702其实并非常量数字,而是一个变量:3303==3300*100/1702匹配规则:连续4位的数字,匹配后在其前边加一个字符前缀,这样表达式引擎会将之视为需要替换值的变量。处理代码如下:p...

2019-08-27 17:59:48 642

原创 DruidDataSource建立Connection实现原生JDBC操作数据库

业务场景:在我们项目中可能使用Mybatis或者Hibernate数据库持久化框架与数据库打交道,但是有时候,当操作的数据量太大或者SQL过于复杂,我们需要使用原生JDBC去完成与数据库交互操作的时候,如何获取连接呢?public class DbHelper { private static DbHelper instance = null; private DbHelp...

2019-08-19 17:04:12 4979

原创 HttpClient爬取网站基本使用

场景,使用HttpClient技术,爬取指定网站的数据。一、构建HttpClient连接(支持Http和Https请求)public CloseableHttpClient createHttpClient() { SocketConfig socketConfig = SocketConfig.custom() .setSoKeepAli...

2019-08-09 16:39:28 861

原创 Jquery与原生js仿锚点的两种实现方式比较

场景:普通锚点由于跳转会修改URL路径,因此满足不了我们的要求。在次背景下,我们通过Jquery和原生js两种方式实现URL不变情况下的锚点跳转。方式一、原生JS仿锚点(推荐) 跳转到指定id的元素位置,这个scrollIntoView是原生方法。 优点:URL不会变,受其它因素影响小document.getElementById(id).scrollIntoView();...

2019-08-07 13:46:47 595

原创 zTree简单数据模式下addDiyDom自定义结点控件

适用场景:针对普通的树形结构不能满足的时候,可以自定义树节点控件。一、构建树节点页面<ul id="regionZTree" class="ztree table_ztree" style="width:100%;height:700px;overflow-y:auto;margin-top: 10px;"></ul>二、树节点setting设置var ...

2019-08-02 16:29:20 3599

原创 Zip文件解压缩之Java实现

Zip文件解压缩之Java实现/***文件解压缩*zipFilePath 源压缩文件路径*targetPath 目标文件的解压路径**/public static void unzip(String zipFilePath, String targetPath) throws IOException { OutputStream os = ...

2019-07-31 17:52:09 257

原创 Jar包手动关联Maven依赖管理

场景:部分包在maven仓库中没有,或者maven不能自行下载成功对应的jar包,就需要我们手动到官网下载下载对应的jar包并关联到maven管理。常见的如:Oracle的驱动架包一、下载对应的架包渠道:官网,maven仓库啊等等二、安装到本地maven仓库-Dfile :指定下载的jar所在文件路径及文件名-DgroupId : 指定架包的groupId-Dartifa...

2019-07-30 10:02:37 302

原创 POI实现Excel文件上传及数据导入

1、引入POI架包<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version></dependency>2、前端文件上传页面,注意点:enctype...

2019-07-29 15:52:31 522

原创 Mybatis+Oracle实现主键自增长

方式一:通过序列1、新建序列create sequence SEQ_T_XBRL_WARN_INFOminvalue 1maxvalue 999999999999999999999999999start with 1increment by 1cache 20;2、执行插入操作,这里利用序列有两种<insert id="saveTextTemplate" pa...

2019-07-29 15:26:27 571 1

原创 zTree简单数据模式的应用

一、构造节点数组方式一:直接给出数组var treeNodes = [ {"id":1, "pId":0, "name":"test1"}, {"id":11, "pId":1, "name":"test11"}, {"id":12, "pId":1, "name":"test12"}, {"id":111, "pId":11, "name":"test1...

2019-07-15 16:43:24 687

原创 Maven 使用中常见点

一、Package的3中方式的区别1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。3.jar工程:将会打包成jar用作jar包使用。二、SpringBoot父级依赖<parent> <groupId>org.springframework.boot</gr...

2019-07-02 17:34:22 137

原创 Properties 配置文件工具类

介绍:加载指定配置文件,并提供获取配置参数值的方法public final class PropertiesUtil { private static String urlPrefix = ""; static { Properties prop = new Properties(); InputStream in = PropertiesUtil.class.getClas...

2019-07-01 17:59:37 121

原创 RestTemplate 请求服务接口的使用场景及方法

一、RestTemplate介绍 Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。因此,项目中经常需要请求别的服务的HTTP接口的地方,可以使用RestTemplate来简单高效的实现。二、RestTemplate的简单使用1、...

2019-07-01 17:28:10 1162

原创 Quartz 3种方式实现定时任务

一、xml配置的方式,主要分为两步:1、继承QuartzJobBean接口,实现其executeInternal()方法,代码如下:package com.cncbi.riw.batch.job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.slf4...

2019-07-01 17:11:07 907

原创 Java异常之throws和throw理解

1、Throws 如果在当前方法不知道该如何处理该异常时,则可以使用throws对异常进行抛出给调用者处理或者交给JVM。调用者调用此方法,要么抛出要么try catch处理,到了JVM这里,就是打印出异常堆栈,并终止运行。换句话说,用这个有两种情况。 1>我throws抛出异常,如果是检查异常,那么调用者必须捕获或再次抛出 2>我th...

2019-06-28 16:09:33 1264

原创 SonarQube常见代码优化记录(一)

1、判断一个集合是否有值的时候,用isEmpty而不用size,两者主要是返回类型的不同//Noncompliant Code Exampleif (myCollection.size() == 0) { // Noncompliant /* ... */}//Compliant Solutionif (myCollection.isEmpty()) { /* ... */...

2019-06-28 15:15:08 2501

原创 Spring 获取bean和销毁bean的工具类实现

@Component("springUtils")@Lazy(false)public final class SpringUtils implements ApplicationContextAware, DisposableBean , BeanFactoryPostProcessor { /** applicationContext */ private static Appli...

2019-06-27 14:01:07 338

原创 Dom4j实现XML解析

1、maven依赖<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version></dependency>2、新建XML结点类,用来接收解析的xml结点数据...

2019-06-27 13:31:22 266

原创 Idea Maven项目引入本地Jar

Idea Maven项目引入本地jar包的步骤:1、new Library ,指定架包路径2、module引入架包选择需要引入上诉Library的module,点击加号引入

2019-06-25 13:55:46 1380

转载 Java架构技术学习路线

转载自Java知音:https://mp.weixin.qq.com/s/AN9QR5lb6p8SJbo_0CpEYAJava语言是现阶段中国互联网公司中,覆盖度最广的研发语言。如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的完整的Java成神路线图。一:常见模式与工具学习Java技术体系,设计模式,流行的框架与组件—— 常见的设计模式,编码必备, Spring...

2019-06-20 10:14:15 232

原创 Java try catch语句块中try()的括号中代码作用

应用场景:当我们使用带资源的try语句时,使用finally也许会造成一个异常被覆盖的问题,即try语句块中会抛出某个异常,执行finally语句块中跑出了同样的异常,这样的话就会导致原有的异常会丢失,转而抛出的finally语句中的异常。这时我们可以使用带资源的try语句来处理(前提是这个资源实现了AutoCloseable接口的类)格式如下:括号中可以写多行语句,会自动关闭括号中的资...

2019-06-19 17:30:43 12102

原创 跨域场景及解决方案

一、什么是跨域? 请求不同协议、域名、端口的行为,就是跨域二、跨域的解决方案 常见解决方案:Nginx代理实现不跨域,配置支持跨域 1、Nginx代理 通过监听一个端口,不同路径来实现对不同微服务跨域访问,大致配置如下:server { listen 80; #监听80端口,可以改成其他端口...

2019-06-17 16:13:41 1146

原创 Nginx代理实现主服务调用不同主机的微服务

场景:主服务和微服务分别部署在两台主机上,主服务的页面中直接请求到了微服务,然而,有些客户只允许为客户机开通生产服务器一个端口(例如8088)的情况下该方案不可行。解决方案:通过Nginx代理请求去完成。主要的配置如下配置说明:server { #拦截的端口地址 此端口地址需对外开发listen 7094; ...

2019-06-13 21:47:49 2591

原创 Oracle中存在更新、不存在插入操作实现

这里只讲一种写法,merge的用法,核心格式如下MERGE INTO table_name alias1 USING (table|view|sub_query) alias2 ON (join condition) WHEN MATCHED THEN UPDATE table_name SET col1 = col_val1WHEN NOT...

2019-05-22 18:59:48 1199

原创 MD5加密

public String getMD5String(String str) { try { // 生成一个MD5加密计算摘要 MessageDigest md = MessageDigest.getInstance("MD5"); // 计算md5函数 md.update(str....

2019-05-15 14:47:04 367

原创 Git常见命令操作

Git常用操作命令 1 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加远程仓库:$ git remote add [name] [url] 删除远程仓库:$ git remote rm [n...

2019-04-16 16:10:33 146

原创 Spring 获取配置文件中注入的Bean对象

业务场景:Config类中,需要获取其它位置的配置文件的参数。用户可以在xml配置文件修改其位置,可以是绝对路径或者相对路径;1、ApplicationContextHelper  继承ApplicationContextAware,用来获取已注入的bean对象package hk.emc.rrs.util;import org.springframework.beans.BeansE...

2018-11-13 16:21:58 2348

原创 Windows下Jenkins自动拉取编译SVN项目并发布Tomcat和Jboss

本文主要记录一些重要的配置,忽略Jenkins的安装。配置主要分为三个重要部分:1、插件配置           主要涉及3个插件的安装。         Deploy to container Plugin:This plugin takes a war/ear file and deploys that to a running remote application server ...

2018-08-28 11:58:17 2692

原创 Windows Tomcat JVM 参数设置之Dspring.profiles.active

       之前在window上的tomcat配置Dspring.profiles.active的jvm参数的时候,网上百度了很多种方法,被配置的位置坑了,先把自己的配置写在这里。        1、打开bin/catalina.bat文件;        2、添加配置参数,位置很重要,网上很多说添加到开头并不是指第一行,反正我添加是错了,本人添加正确位置如下图:          ...

2018-08-09 12:07:38 11485 1

原创 linux下单机配置tomcat集群

本篇博文记录的是在一台阿里云服务器上完成单机部署两个tomcat集群       步骤如下:1、下载tomcat压缩包 然后解压两份 分别命名tomcat1和tomcat2 tar.gz 的压缩命令 :tar -zxvf 压缩包2、修改统一编码位置:tomcat根目录/conf/server.xml添加项:URIEncoding="UTF-8"如图所示:3、分别

2017-11-27 19:30:10 549

原创 Linux下JDK的安装

先查看当前系统是否存在jdk:

2017-11-05 21:07:10 214

原创 Java NIO中的阻塞与非阻塞IO

一、什么是阻塞和非阻塞?传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不 能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会 阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理, 当服务器端需要处理大量客户端时,性能急剧下降。 Java NIO 是非阻

2017-11-03 22:20:12 2291

原创 一个简单地程序示例剖析类加载机制

实例如下:public class LoadingTest { public static LoadingTest obj=new LoadingTest(); public static int value1; public static int value2=0; public LoadingTest() { value1=10;

2017-11-03 21:16:37 200

原创 java NIO 的通道Channel的理解

一、Channel类似于传统的“流”,只不过Channel不能直接访问数据,Channel只能与buffer交互。而且流是单向的,分为输入流和输出流, 但是通道是双向的,通过缓冲区buffer两边都可达。Channel表示IO源与目标打开的连接。工作原理如下,通过Channel来独立处理IO请求:                                          二、主

2017-10-25 21:49:40 6891 3

原创 Java NIO中Buffer常用方法的用法及理解

一、首先,什么是Buffer?Buffer,中文意思就是缓冲区,一个用于特定基本类型的容器,由java.nio提供该类,及以下常用子类:ByteBuffer CharBuffer ShortBufer IntBuffer LongBuffer FloatBuffer DoubleBuffer,并没有BooleanBuffer.     二、其次,这么多的buffer,它的作用是什么呢?

2017-10-23 17:32:47 4715 2

原创 远程连接Linux的相关配置

通过xshell远程连接Linux,系统版本:centos 6.8 32位,虚拟机:VMware Workstation 11,虚拟机网络连接方式:桥接(在相关配置之前建议将当前系统快照,以免一些错误的设置导致影响系统正常运行时可以恢复到之前状态)1、如果Linux的eth0网卡没有激活开启,需要先开启ifconfig eth0 up2、配置网络设置(以下给出两种方式)1>直接修改

2017-10-17 17:23:16 322

空空如也

空空如也

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

TA关注的人

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