自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃苦胆的野狼

文可广略,术需专攻

  • 博客(160)
  • 资源 (5)
  • 问答 (4)
  • 收藏
  • 关注

原创 通过故事理解 悲观锁与乐观锁

悲观锁与乐观锁写这篇文章的起因,是由于上面这张截图。 这是项目经理发在开发群的一张图,我这边只截取了非敏感信息出来。可以看到,多台机器都在执行着一条SQL,而这条SQL却一直处于等待状态(导致请求耗时过长)。原因则是SQL尾巴的 for update (悲观锁)字眼。通过故事来了解悲观锁与乐观锁故事背景A员工和B员工,是某电商平台的两位小员工(线程)。某日A接到通知,卖出巧克力30块,请对库存减少

2018-01-13 17:05:52 511

原创 并发编程 —— CountDownLatch

并发编程 —— CountDownLatchCountDownLatch,是我在平时开发过程中,比较常用到的线程辅助类。 常见的应用场景:主线程需等于其它线程任务完成后,才可继续执行。举个例子,我想看在播放器上看下载到本地的电影。那么下载播放器和下载电影,就是两个任务。下载播放器的同时,也可以下载电影。可以并发处理。而我的主线程,需要等待这两个任务完成后,才可继续继续进行。像这种场景,我

2018-01-01 21:13:46 412

原创 聊一聊这个博客

起初创建这个博客,是为了记录下自己在码农之路上踩过的一些坑。内容不算高产,质量也不算高。纯粹是笔记,而非对于某个问题或是某个知识领域的系统性总结。从14年到现在,已经过了三年有余。期间,我的博客内容多少帮到了一些同行的朋友,有一些博文里,我留下了我的邮箱,方便问题交流。三年来一共收到了100多封的邮件。发送邮件的对象,主要都是大学生群体。c9、985、211、普本,甚至有一些研究生也向我发送了邮件

2017-12-17 17:39:40 469

原创 Building a RESTful api with Spring note2

The Default Message ConvertersClient-Server Communication – JSON only1、High Level Content Negotiation2、@ResponseBodyexample3、RequestBodyexample4、Using Spring’s RestTemplate with Http Message Conve

2017-12-15 11:06:10 289

原创 Building a RESTful api with Spring note1

Understanding REST in SpringThe Spring framework supports 2 ways of creating RESTful services:using MVC with ModelAndViewusing HTTP message convertersThe ControllerCRUD methodMapping the HTTP respon

2017-12-03 23:40:36 264

原创 Mybatis 批量插入

阿里云股票业务有提供一项查询功能,发送股票名称,返回股票编码,在毕业设计的开发过程中,我用到了这个功能。由于需要支付费用,毕设结束后便考虑自己动手实现。找到了这个地址:http://quote.eastmoney.com/stock_list.html对股票信息数据进行抓取后入库,有4000多条数据,如果采用传统的入库方式,一条条数据插入,数据库I/O会浪费比较大的资源。尝试了

2017-05-27 22:22:02 413

转载 Java序列化与反序列化 —— serialVersionUID作用

转载至:http://swiftlet.net/archives/1268serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可

2017-05-19 14:30:14 629

原创 网络爬虫技术交流——爬虫第三课

CNKI例子后续首先我们先来看看CNKI的主页,常用的就是往搜索框中数据所要查找的数据,根据所需语言选择对应的文献。在爬虫第一课,我们介绍了fiddler、chrome开发者工具、firebug等工具。爬虫关键的一部就是要了解到你的电脑和互联网之间的http通讯,然后了解到请求方式,请求地址,所需参数等信息后,再通过代码发送请求。我个人常用的

2017-03-30 18:04:25 781

原创 网络爬虫技术交流——爬虫第二课

爬虫代码Demo的演示 CloseableHttpClient client = HttpClients.createDefault(); //创建HttpClient对象 HttpGet request = new HttpGet("https://www.baidu.com/"); //创建一个GET请求 HttpResponse response = cl

2017-03-26 19:48:46 1192

原创 网络爬虫技术交流——爬虫第一课

爬虫的基本概念•按照一定的规则,自动地抓取万维网信息的程序或者脚本常见的爬虫分类•通用网络爬虫•爬取对象从一些种子URL 扩充到整个Web,主要为门户站点搜索引擎和大型Web 服务提供商采集数据)•聚焦网络爬虫•又称主题网络爬虫(TopicalCrawler),是指选择性地爬取那些与预先定义好的主题相关页面的网络信息•增量式网

2017-03-26 19:20:24 2565

原创 Illegal character in query Url中含有{}

在抓取某网站信息的时候,url是这样的: http....{...}...,出现了大括号。原样将url放在代码里,发送post请求的时候,发现请求不到数据。但把url放到浏览器里是ok的。对相关的参数数据,均已进行了URLencode编码,但仍然不起作用。后面想了想,干脆对{}也encode试试,毕竟没有遇到过url里有{}的,数据可以获取到了。报Illegal cha

2016-11-21 23:43:02 2779

原创 持续集成

持续集成持续集成概念介绍持续集成模块详解持续集成(Continuous Integration),简称CI持续集成概念介绍百度百科:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽早地发现集成

2016-11-18 11:10:45 551

原创 FastDateFormat 时间戳转换

SimpleDateFormat来做Date到String的类型转换,建议使用Apache commons-lang中的FastDateFormat。因为JDK里自带的SimpleDateFormat存在线程不安全问题。直接贴上代码,参数里是long型的时间戳/** * Created by huanghong on 2016/11/4. */@Servicepublic c

2016-11-07 11:07:22 4881

转载 ELK 日志分析平台搭建

一、ELK介绍本节内容来自 开源实时日志分析ELK平台部署,感谢原作者详细的介绍。日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务

2016-11-04 17:34:53 1061

原创 Spring 注解 Demo

分为业务层、持久层、表现层业务层:@Servicepublic class UserService { @Autowired private UserRepository userRepository; public void service(){ System.out.println("UserService service.."); userRepository.s

2016-10-30 15:35:33 399

转载 使用注解来构造IoC容器

Spring常用注解使用注解来构造IoC容器用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册。如:在base-package指明一个包1 context:component-scan base-package="cn.gacl.java"/>表明cn.gacl.java包及其子包中,如果某个类的头上带有特定的注解【

2016-10-30 15:29:49 309

原创 HttpClient request payload post请求

最近在做一些爬虫相关的工作,遇到了一个网站,在使用谷歌开发者工具监控的时候,发现他的请求是这样的我们都知道传统的post请求,所提交的是form data 格式的,key-value键值对的形式提交。这个在爬虫post请求中非常常见。第一次遇到了这种形式提交的,后面去找了很多方法,发现在百度搜的答案都用不了,后面翻墙去了stackoverflow,这边贴上地址http://st

2016-10-07 17:33:50 13372 1

原创 Spring学习笔记(六) Bean的作用域 & Spel 表达式

Bean的作用域Bean的作用域,通过scope属性来控制。默认为singleton,意味着使用的是单例对象,容器初始化的时候,即创建实例,全程就使用这个对象设置为prototype,则在容器初始化的时候,不会创建该bean对象。而是每个请求的时候,才创建一个新的bean实例返回<beans xmlns="http://www.springframework.org/sc

2016-09-21 22:27:26 486

原创 Spring 学习笔记(五)

Bean之间的关系 —— 继承和依赖<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocat

2016-09-12 22:02:58 308

原创 Spring 学习笔记(四)

集合属性:在Spring中可以通过一组内置的xml标签、、来配置集合属性需要指定具体标签,对应集合类型。可以通过简单的value、或是ref指向对其他bean的引用,或是通过手写内部bean数组定义和list一样,set集合也是。map 通过entry标签。以key - value 的形式进行书写properties ,后期和dataSour

2016-09-06 22:22:57 353

转载 持续集成

持续集成是什么?作者: 阮一峰日期: 2015年9月23日互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。本文简要介绍持续集成的概念和做法。一、概念持续集成指的是,频繁地(一天多次)将代码集成到主干。它的好处

2016-09-06 09:53:53 280

原创 Spring 学习笔记(三)

构造方法注入:通过有参构造方法注入字面值:用字符串表示 如value = "259" 可通过 元素标签或value属性注入如果字符串包含特殊字符,用   例子:Bean的相互引用,可用ref属性或元素来完成。也可以再属性或构造器包含Bean的声明,这样的Bean成为内部Bean Spring支持级

2016-09-01 23:02:33 393

原创 Spring 学习笔记(二)

配置bean配置形式: 基于XML 基于注解Bean方式:基于全类名(反射) 、工厂方法、FactoryBean通过反射的方式在IOC容器中创建Bean实例,这就要求类里需要有无参的构造函数,解释上次 学习笔记一class :bean的全类名id:标识容器中的bean id 唯一在SpringIOC容器读取Bean创建Bean实例之前,必须对

2016-08-31 22:22:33 410

原创 Spring 学习笔记(一)

Spring :轻量级框架,不需要使用到Spring的API,无依赖IOC / DI 反转控制/依赖注入  反转资源获取的方向 / 通过配置注入 AOP 面向切面编程,将共同部分提取出来,通过配置文件进行管理Eclipse 上有个Spring tool,装了几次没装成功。后面决定用Myeclipse 进行相关学习。1.新建一个普通的Java项目2

2016-08-30 22:21:33 408

原创 &lt; &gt; &nbsp;

如果是搜索搜到这篇博文,肯定也是遇到了类似问题,如何把上述这三个词符修改成自己想要的?html = html.replace("<", '<'+"");html = html.replace(">", '>'+"");这边有两个关键点,一个是html.replace 执行完操作后,还应把这个值赋给html,这样才会生效。另一个,html.replace("<","

2016-08-16 12:37:56 825

转载 深入理解Java中的流

首先,流是什么?流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念

2016-08-07 16:08:25 468

原创 关于Session 与Cookie

网上关于Cookie与Session的之间关系的教学资料很多,了解了一些后自己整理一份Cookie通过在客户端记录信息,确定用户的身份。Session通过在服务端记录信息,确定用户的身份。1.1  Cookie机制在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例

2016-07-27 16:23:17 619

原创 Git 学习笔记四

分支管理:之前提及master其实是主分支分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己

2016-07-21 11:10:48 332

原创 Git 学习笔记三

远程仓库:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。Github,为Git提供仓库托管服务的,不多作介绍。注册一个Github 账号,就可以免费获得Git远程仓库由于本地Git仓库和GitHub仓库之间的传输是

2016-07-21 10:04:04 463

原创 Git 学习笔记二

Git commit 只会提交暂存区里的文件撤销修改: git checkout -- readme.txt此命令会让文件回到最近的一次git commit 或 git add 时候的状态上述的是丢弃工作区修改,如果添加到了暂存区,则使用:git reset HEAD file可以把暂存区的修改撤销掉,重新放回工作区小结:场景1:当你改乱了工作区某个文件

2016-07-19 19:03:52 305

原创 Redis 学习笔记四

常用命令:redis-server 服务端启动redis-cli  启动客户端 (本地启动)redis-cli -h host -p  port -a password (连接远程redis 服务器)例: redis-cli -h 127.0.0.1 -p 6379 -a "mypass"String类型的时候:set key value get key (返回

2016-07-19 15:22:51 337

转载 Redis 学习笔记三

String(字符串)string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。实例redis 127.0.0.1:6379> SET name "w3cschool

2016-07-19 14:26:22 393

原创 Redis 学习笔记二

Redis 与Java, 好比mysql与Java的JDBC,Redis这边有好几个版本,我选择用Jedis,大家都说好。上文的Redis已经安装并且可以使用,本文与将与Java结合。首先,需要准备几个jar包,在我这边可以下载,我没设置积分:http://download.csdn.net/detail/hhooong/9579486在终端中,可以通过set ke

2016-07-18 19:30:13 265

原创 Redis 学习笔记一

redis是什么redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)目前,Vmware在资助着redis项目的开发和维护。Redis 是完全开源免费的,遵守B

2016-07-18 17:26:57 518

转载 关系型数据与非关系型数据库

1. 关系型数据库关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为主流数据库结构的主流模型。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系模型中常用的概念:

2016-07-18 09:29:21 483

原创 Git 学习笔记一

推荐一下廖雪峰前辈的博客:http://www.liaoxuefeng.com/Git 学习笔记Git 是一个分布式的版本控制系统集中式版本控制系统:SVN、CVS等 ,拥有中央服务器,所有的分支,都是汇总到中央服务器,所有开发人员都必须依赖这个中央服务器,一旦中央服务器出现问题,开发人员可能就面临着停止作业的情形。分布式版本控制系统:Git ,分布式的版本控制,就是每个人

2016-07-14 19:56:56 337

转载 WebService三大基本元素 SOAP WSDL UDDI

1、SOAP 即 Simple Object AccessProtocol 也就是简单对象访问协议。SOAP 是用于在应用程序之间进行通信的一种通信协议。SOAP 基于XML 和 HTTP ,其通过XML 来实现消息描述,然后再通过 HTTP 实现消息传输。SOAP 协议的一个重要特点是它独立于底层传输机制,Web 服务应用程序可以根据需要选择自己的数据传输

2016-06-26 16:06:14 8020

原创 简单的百度贴吧爬虫

最近在学爬虫,看了点视频学了点东西,写了一个百度贴吧的爬虫上来目前只是把爬取网页信息,存储到本地#-*- coding:utf-8 -*-# 识别中文注释 import urllib2def load_page(url): user_agent ="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTM

2016-06-16 17:47:00 574

原创 JSON

JSONObject:A JSONObject is an unordered collection of name/value pairs.是一个final类,继承了Object,实现了JSON接口构造方法如下:JSONObject();创建一个空的JSONObject对象JSONObject(boolean isNull);创建一个是否为空的JSONObject

2016-06-15 14:18:51 242

转载 JavaScript中的prototype

JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式在.Net中可以使用clone()来实现原型法原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。 2 javascript的方法可以分为三类:a 类方法b

2016-06-09 15:01:08 253

原生态JavaEE酒店管理系统

上传酒店图片,酒店管理,房间管理等。 很久以前做的了,看了一下私信发现有几位同学找我要项目源码,发上来给各位参考一下。

2016-11-26

Jedis所需jar包

Jedis与Java结合所需jar包,一共有三个,commons-pool,hamcrest,jedis,放入即可使用

2016-07-18

mysql+proxool+commons+ojbc jar包——酒店管理系统系列

http://blog.csdn.net/hhooong 酒店管理系统开发系列所用到的jar包,纯原生态javaee系统

2016-02-15

tomcat 7.0

tomcat的安装包,可照着博客所写安装,较为简单 http://blog.csdn.net/hhooong

2016-02-11

selenium jar包

能用的selenium jar包 0 0

2015-07-31

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

TA关注的人

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