自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring-cloud config使用

SpringCloud学习-config使用创建git版本项目用于管理配置文件注意文件名的格式config-server-dev 分别为config-server为application名称,dev为环境区分profile文件具体内容如下vsersion=22.33message=hello world创建配置中心项目1.添加依赖 <dependency&...

2020-04-03 16:57:20 170

原创 Thread.join方法详解

一.场景你可能会被经常问到如何线程有序执行,如何让当前线程等待其他线程执行完成,你可能会想到join方法,那join方法具体是怎么使用呢?我们看看下面的案例分析来研究一下join方法的使用。二.案例分析案例1:public class JoinTest1 extends Thread{ public void run(){ System.out.p...

2020-03-17 14:08:29 2349

原创 多线程(五 ) JUC常用工具

1.Condition 使用public class ConditionWait implements Runnable{ private Lock lock; private Condition condition; public ConditionWait(Lock lock, Condition condition) { this.l...

2019-10-24 11:31:25 190

原创 多线程(四 ) Lock的使用及原理

一.Lock的使用我们知道synchronize关键字可以实现线程安全,这个是jvm层面帮我们实现的线程安全操作。而lock是在jdk层次实现的线程安全,那么lock怎么使用呢。ReentrantLockReentrantLock:可重入锁,支持重入。简单意思上来说,就是当线程1拿到锁的时候,线程1进入同一把锁的其他方法的时候,可以直接进入,增加重入次数。Reentran...

2019-10-23 15:06:54 836

原创 多线程(三) volatile原理分析

一.案例分析案例1:public class VolatileDemo { private static Boolean flag = false; public static void main(String[] args) throws InterruptedException { Thread threadA = new Thread((...

2019-10-08 17:26:33 223

原创 多线程(二) synchronized分析

一 .synchronied 的使用为了充分利用cpu资源,我们经常会使用多线程来合理的利用cpu空闲资源。但是在使用多线程的时候,由于多个线程存在对内存中对象的拷贝,当多个线程对一个资源进行访问的时候,会出现线程不安全的情况。为了避免这种线程不安全的情况 ,jdk提供了synchronied的方式来保证同步代码块的安全问题。synchronid的加锁有2种类型,分别为对象锁和类锁。第...

2019-09-28 20:58:48 190

原创 多线程(一) 线程的基本知识

一.线程和进程进程:操作系统资源资源分配的基本单位,占用的资源较大,进程间无共享内存,切换进程时,cpu消耗太多线程:任务调度和执行的基本单位,一个进程可以有多个线程,线程之间公用所在进程的内存,资源共享。创建线程的开销较小。二.线程的生命周期线程总共有6种状态,分别如下:1.新建状态(NEW):当创建一个线程对象的时候,线程处于该状态。2.运行状态(...

2019-09-23 20:23:30 144

原创 Mybatis源码分析(2)-Mybatis 插件

一. Mybatis插件描述mybtis的官方文档对于插件的描述如下mybatis的插件可以通过拦截器的形式进行添加,作用的范围为Mybatis的四大组件。分别为Eexcutor执行器,ParameterHandle参数执行器,ResultsetHandle结果执行器,SatementHandle。对于这4大组件的方法能够在方法前后进行一些公用的操作,如统计sql执行时间,分页插...

2019-09-22 21:08:43 210

原创 Mybatis源码分析(1)-Mybatis 执行过程分析

一.整体执行过程整体执行过程大致如上图所示。具体的步骤可以拆分成一下内容1.首先解析配置,得到Configuration2.创建SqlSession回话,用于和数据库完成交互。3.SqlSession中创建不同的Executor执行程序。4.Executor中创建StatementHandler来调用jdbc程序。5.Executor中指定ParameterHandle...

2019-09-22 15:53:13 140

原创 Spring源码分析(4)-SpringMVC的实现过程

一.SpringMVC的实现过程SpringMVC的实现过程主要分为2个步骤,初始化阶段和调用阶段1.初始化阶段,这个阶段主要是在DispacherServlet初始化的时候调用,完成组件的初始化2.调用阶段,这个阶段主要体现在请求过来的时候,通过doDispacher方法来完成调用具体实现时序图如下:二.具体分析1.首先我们知道SpringMVC的实现过程主要是通过D...

2019-08-19 11:18:28 116

原创 Spring源码分析(3)-AOP 实现过程

一 .首先给出AOP的实现过程的时序图Ïspring的AOP实现大致可以分为2个步骤1.创建代理对象。这个阶段主要为代理对象的创建,封装好对应的advise集合2.调用阶段,在调用阶段完成 aop的功能二.过程分析1.创建代理对象分析在上一篇博客中,我们有分析DI的实现过程,那么在实现DI的过程中,其实包含了对应的AOP过程,我们追踪到AbstractAutowi...

2019-08-17 11:18:17 274

原创 Spring源码分析(2)-DI 依赖注入过程分析

一、DI注入时序图整个注入过程可以分成2个阶段1. 实例化:创建对应的bean2.依赖注入:将bean的相关依赖注入到实例中二、入口分析1.如果没有设置lazy-init=false,那么spring默认会在第一次调用bean的时候才初始化bean,所以入口在beanFatcory接口的getBean方法中。2.如果设置了lazy-init=false,那么spr...

2019-08-01 15:13:30 185

原创 Spring源码分析(1)-IOC容器初始化过程分析

一、首先给出IOC容器初始化的时序图这里以ClassPathXmlApplicationContext为例子,加载xml文件中的对象。大致流程分为3个步骤,定位,加载,注册定位:定位xml所在位置加载:将xml中的元素转化成Resource对象,加载对应的节点元素注册:将Resource对象转化成Document对象,然后注册到BeanDifinittion,保存到容器bean...

2019-07-31 14:19:48 163

原创 maven本地打包和jenkins的区别导致的问题

开发一个jar项目,由于要做消息发送端,就引用了公司kafka基本组件jar包。在本地跑的时候,什么问题都没有,然后提交代码到测试环境jenkins打包部署,然后发现日志怎么都打不出来。 开始以为是测试环境的问题,可是这个项目之前是没有问题的。折腾了半天,把自己本地maven打的zip包和jenkins打的包比较,发现两个包里面的内容不一致。 最后检查出来的原因是在本地打包的时候,maven拉的是

2018-01-19 11:00:08 6300 2

原创 处理springMVC返回json日期格式化

数据库字段类型为datetime类型如果对字段不做格式化处理"createtime":"2017-11-27 19:30:04.0",    -->createtime 用的是String类型接收"updatetime":1511925354000    -->updatetime用的是java.until.Date类型接收对2个字段加上格式化注解

2017-11-29 11:32:38 672

原创 关于跨域的几点处理

公司项目之前在做前后端项目 对于ajax跨域问题是这样处理的1.后端java控制输出流response.setContentType("text/html;charset=UTF-8");response.addHeader("Access-Control-Allow-Origin","*");2.前端直接使用jsonp请求  最近新开了一个项目,做一个全

2017-11-29 10:54:55 272

转载 centOs 安装 git

root权限登录1.检查是否安装git  git -- version  2. 安装git  yum  install git一直y 3.  检查   git  version

2017-03-29 09:59:20 201

翻译 centOS7 修改中文支持

root用户登录,  vim /etc/locale.conf修改原有的   LANG = "en_US,UTF-8"  -->  LANG="zh_CN,UTF-8"  然后 reboot。

2017-03-28 13:58:11 813

原创 list的remove方法中的陷阱

在项目开发过程中需要我对某些标题为空的广告过滤,所以使用了list的remove方法。public static void main(String[] args) { List listA = new ArrayList(); listA.add("a"); listA.add("b"); listA.add("c"); listA.add("c"); listA.ad

2016-12-01 13:49:44 366

原创 关于jsoup的select()

在爬虫开发过程中发现使用jsoup的select方法是发现:当使用Elements.select()方法时,碰到相同元素时,会跳过相同元素。而使用document.select()方法是,不会出现上述情况。例: String html = "\n" + " \n" + " \n" + " \n"

2016-07-21 11:33:24 1099

转载 关于HttpClient中超时设置

最近用到了HttpClient写爬虫,可能我有新版本强迫症,老是喜欢用新版本的东西(虽说新版本不一定好用),然后就用了HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样,3.X是这样的HttpClient httpClient=new Default

2016-07-18 17:43:34 452

原创 获取url资源的几种方式

1:HttpClient的get方式(程序中使用的HttpClient为4.3.1版本) public static String doGet(String src,String unicode){ CloseableHttpResponse response = null; HttpEntity entity = null; InputSt

2016-07-18 17:34:18 3048

原创 js对json对象的增加

var option = { series: []};var baoguang = {            name:'曝光',            type:'line',            // smooth:'false',                        data:[21, 21, 32, 12, 25, 51, 12,,,,,,,,,,,,,

2016-07-15 17:09:25 489

转载 多线程学习-基础(二)

synchronized:被synchronized修饰的方法为同步方法。1.假如a对象的x方法被synchronized的修饰,y方法没有被修饰,那么在第一个线程访问x方法获取对象锁的时候,第二个线程不可以访问x方法,但是可以访问y方法。也就是说,在某个线程已经获取一个对象的对象锁的情况,其他线程只能访问该对象的非synchronized方法,如果要访问,那么需要等待第一个线程执行s

2016-07-14 14:04:02 269

转载 多线程学习-基础(一)

进程:是一次程序的执行,系统进行资源分配的一个独立单位。像任务管理器中的一个个.exe程序就是一个个进程。线程:进程中的子任务,如qq中的视频线程,下载文件线程,传输数据线程。关于调用线程中的start方法和run方法的区别:通过调用线程的satart方法,会新建立一个线程,执行run方法。属于异步执行(程序随多线程随机调用)直接调用run方法,相当于当前线程调用对象的方法

2016-07-14 10:26:11 286

原创 爬虫遇到图片禁止访问(如403)

今年一直在做爬虫,有时候碰到图片禁止访问的情况,以前一直以为不能解决。前两天在网上看了下资料。对于低级的图片防盗链可以通过改变Referer来解决。访问图片资源: url = new URL(src); URLConnection con = url.openConnection(); con.setConnectTim

2016-07-08 16:35:16 8744 1

原创 String的format方法格式字符串中包含%

在程序开发过程中碰到要对接受到的字符串格式化,但是如果碰到传过来的字符串中包含%时,将会抛出异常解决方法:将不需要转化带%号的字符串 前面多加一个%

2016-05-26 14:44:20 2678

原创 程序停滞不跑的情况

最近一直都在做爬虫系统,因为后台改需求,所以修改了dao操作。 然后在测试的时候,我测试爬一个网页,没有问题,能一次性爬完(不满60个)。然后测试同时爬几个网页,总是爬到一半程序就停在哪里不动了,刚刚以为是流没关闭的问题,然后测试还是不行,后来根据那一条新闻的信息debug,然后发现程序在执行jdbc操作时,停止运行。经过别人提醒,可能是数据库连接池的问题,然后修改数据库连接池最大连接数,

2016-04-29 14:44:20 497

原创 关于时间保存到数据库中丢失精度的问题

实体bean时间对象为java.until.Date  保存到数据库时使用的是ps.setDate(1,new java.sql.Date(article.getSpidertime().getTime()));然后保存到数据库就会变成2016-04-28 00:00:00.0原来有的时分秒丢失了。解决方式:

2016-04-29 14:29:16 2153

空空如也

空空如也

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

TA关注的人

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