自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行者

我不是石猴,只是一只单纯的猿类!

  • 博客(47)
  • 资源 (4)
  • 收藏
  • 关注

原创 Cron表达式

Cron表达式实际上是由7个子表达式组成的字符串,描述了时间表的详细信息。这些子表达式用空格隔开,分别代表: 1. 秒 2. 分 3. 小时 4. 月份中的天数 5. 月 6. 星期中的天数 7. 年(可选)一个完整的Cron表达式的字符串例子“0 0 12 ? * WED”,意思是“每周三的上午12:00:00”。 每个了表达式都包含“和”、“或”的两种排列,例如,上一个例子...

2018-05-24 17:10:16 2020

原创 并发与并行

并发当多个线程在同时进行时,而系统只有一个cpu(小于线程数),此时系统不能真正的同时进行所有线程运行(只可以运行一个线程),系统会将cpu运行时间划分成若干个时间段,再将每个时间段交给线程去执行,在一个线程运行时,其他等待cpu资源的线程都被挂起。这便是并发。并行目前即使是个人电脑的cpu也是多核,在多核电脑中,每一个cpu都可以独立运行一个线程,这种可以同时执行多个线程的方式便...

2018-05-17 08:48:02 327

原创 使用druid数据库连接池

Druid是目前比较流行的数据库连接池,不管是性能还是各项功能都超越其他连接池,有文章介绍各个连接池性能对比如下:hikariCP>druid>tomcat-jdbc>dbcp>c3p0。Druid不仅具有良好的性能,而且还有sql拦截等功能,并提供接口与界面进行sql分析与统计。使用1.引入依赖<dependency> &l...

2018-05-07 20:46:10 1255

原创 httpclient 3 连接池

在项目期初是用HttpConnection,近期为了用应对大促问题,大家决定将请求外部地图接口改为httpclient连接池。期初是朝着httpclient4.X准备的,结果在开发过程中,发现项目中引入的是httpClient3.2。多方找资料,发现3.X的资料已经相当少,特记录一下。import org.apache.commons.httpclient.HttpClient;impo...

2018-05-05 13:16:53 1266

原创 spring boot 热部署-springloader与devtools

开发的过程中,我们常常被一些无关紧要的事情浪费时间,我个人认为重启服务就是最大坑,因为现在维护公司的一个系统是12年前的项目,结构比较复杂,而且代码臃肿。开发过程中便宜与启动Tomcat基本就半小时过去了,junit也是。所以在后续项目开发与学习过程中,都在找热部署发布的功能,不再因为一行代码或者一行日志而重新便宜,重启服务。sprinigboot的热部署有两种方式: 1. 通过spring...

2018-04-23 09:43:43 951

原创 springboot 静态资源处理

使用springboot开发web应用,都会遇到处理静态资源(js,css,image等)的问题,基于springmvc开发,我们需要在需要在xml中定义,如:<mvc:resources location="/static" mapping="/static/**"/>在上述配置中,location定义了静态文件的实际存放路径,而mapping中定义的是浏览器访问静态资源...

2018-04-22 19:03:37 245

原创 springboot响应信息编码配置

spring boot 与spring mvc不同,在web应用中,默认的编码格式为UTF-8,而spring mvc的默认编码格式为iso-8859-1,在spring mvc中,如果设置编码格式需要在spring配置文件中加入:<mvc:annotation-driven> <mvc:message-converters register-defaul...

2018-04-22 19:02:35 8983

原创 springboot 增加拦截器

在springboot中如果需要拦截器,只需要实现WebMvcConfigurer,并重写即可import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.conv...

2018-04-22 18:59:28 1912

原创 js书写技巧-自定义字符串特殊字符替换

String.prototype.entityify = (function(){ var character = { '<': '<', '>': '>', '&': '&', '"': '"' }; return funct...

2018-04-22 18:58:08 2383

原创 springboot 静态资源处理

使用springboot开发web应用,都会遇到处理静态资源(js,css,image等)的问题,基于springmvc开发,我们需要在需要在xml中定义,如:<mvc:resources location="/static" mapping="/static/**"/>在上述配置中,location定义了静态文件的实际存放路径,而mapping中定义的是浏览器访问静态资源...

2018-04-21 14:54:35 602

原创 面试-@Autowired和@Resource的区别是什么

今天听几个同事在聊面试中问到的问题,其中有一个就是@Autowired和@Resource的区别是什么。我当时第一反应就是一个是优先使用name注入,一个使用类注入。但是总觉的不应该这么简单,特意上网查了一下,大致总结如下两个注解的作用@Autowired和@Resource都是用来专配Bean的,这两个注解可以在字段是使用,也可以在setter方法使用//基于@Autowired...

2018-04-20 23:46:32 1056

原创 spring 基于javabean的配置引入外部properties

@Configuration@ComponentScan(basePackages = "com.leiyu.itcast.javaconfig")@PropertySource(value = {"classpath:jdbc.properties","classpath:email.properties"},ignoreResourceNotFound=true)public class...

2018-04-20 08:30:01 1291

原创 面试-多线程常考

1、进程与线程的区别进程:在内存中分配自己独立的运行空间,彼此之间不会相互影响。这种独立的应用空间称为进程。也可以通用的理解为进程就是一个运行的程序线程:位于进程中,负责当前进程中某个具备独立运行资格的空间。一个进程中至少有一个线程。2、引入多线程目的更加合理的利用计算机资源提高程序运行效率3、synchronized的缺点(一般与Lock做比较)sync...

2018-04-15 10:32:13 198

原创 js书写技巧-jsvascrpt数组

数组数组是一段线性分配的内存,主要通过整数计算偏移并访问其中元素。在其他开发语言中,数组是一个性能比较出色的数据结构。但是,在JavaScript中没有类似数据结构。JavaScript中提供一种类似数组、具有数组特性的对象来完成其他语言中数组的功能。JavaScript中数组将下标转为字符串,作为对象的属性。这就导致JavaScript中数组比其他语言的数数据结构要慢。当然,这样的结构使...

2018-04-12 13:02:41 186

原创 Log4j2日志分级(error单独输出)

<?xml version='1.0' encoding='UTF-8' ?><configuration status="info" name="defaultLogConfig"> <properties> <property name="LOG_HOME">d:/logs</property&

2018-04-12 09:26:38 9790

原创 js书写技巧1

1、对象属性定义js对象可以理解为键值对桶,也可以理解成Java中Map,属于Key-value形式。定义属性时可以通过字面量设置属性,如:var obj = { "user-name":'张三', "age" : 15}也可以通过中括号([])形式设置属性,如:var obj = {}obj['user-name'] = '张三'obj['age']...

2018-04-01 13:35:41 1027

原创 面试-Spring事务

Spring事务分类Spring中事务支持两种模式:编码式与声明式。 - 编码事务:硬编码实现事务,在需要事务的代码中手动开启事务,事务结束回滚或者提交。与JDBC开发类似 - 声明式事务:基于Spring AOP,通过切面完成事务管理。可以通过Xml定义切点、切面、通知等。也可以在需要事务的方法通过注解@Transactional完成。通过声明式事务,对代码低侵入@Trans...

2018-03-29 09:24:04 1186 1

原创 docker设置容器固定ip

docker安装后,默认会创建三种网络类型,bridge、host和none,可通过如下命令查看sudo docker network lsbridge:网络桥接 默认情况下启动、创建容器都是用该模式,所以每次docker容器重启时会按照顺序获取对应ip地址,这就导致容器每次重启,ip都发生变化none:无指定网络 启动容器时,可以通过–network=none,docker容...

2018-03-16 16:18:11 36144

原创 JavaScript容易混淆点

1、相等(== )与全等(===)1.1、相等 ==操作符会先做转换操作(强制转型),然后比较相等性。具体转换规则: - 如果有一个值是bool值,比较之前将其转为数值—-false转为0,true转为1 - 一个操作数是字符串,另一个是数值,在比较之前将字符串转为数值 - null和undefined相等 - 比较相等之前,不能将null和undefined转换未任何值 - 如果一个操作

2017-11-29 10:08:29 313

原创 CyclicBarrier的使用

简介CyclicBarrier与CountDownLatch都是在jdk1.5时引入,存在于java.util.concurrent包下。CyclicBarrier的字面意思是可循环使用(Cyclic)的屏障(Barrier)。CyclicBarrier的作用是让一组线程之间相互等待,任何一个线程到达屏障点后就阻塞,直到最后一个线程到达,才都继续往下执行。 如:需要统计多个文件中每个单词出现次数,

2017-09-30 09:58:15 365

原创 CountDownLatch

CountDownLatch是在java1.5被引入的,存在于java.util.concurrent包下。CountDownLatch这个类能够使一个线程等待一定数量(计数器)线程完成各自的工作后再执行后续代码。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己

2017-09-27 09:13:21 325

原创 Java线程池(ExecutorService)使用

一、前提/** * 线程运行demo,运行时打出线程id以及传入线程中参数 */public class ThreadRunner implements Runnable { private final SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss.SSS"); /** * 线程私有属性,创建线程时创建

2017-07-31 17:48:38 42214 2

原创 IDEA开发spring mvc 报404错误

新单位的开发工具抛弃了eclipse而改用idea,目前发现idea确实比eclipse好用,但是由于不熟悉,也遇到很多坑,最大的坑莫过于spring mvc环境搭建。现简单记录,方便记忆。如果可以帮到大家,再好不过,写的比较简单,望大家勿喷!前提项目基于maven,基本结构是Maven标准结构JDK1.7,TOMCAT7.0IDEA2017.1.5基于Servlet3.0,抛弃了web.x

2017-07-19 16:14:08 9262 2

原创 LinkedList与ArrayList比较

LinkedList与ArrayList比较是经常被讨论或者面试经常被问到的问题。本文整理如下:1、ArrayList是基于动态数组的数据结构,LinkedList是基于链表的数据结构。 - ArrayList底层实现/** * The array buffer into which the elements of the ArrayList are stored. * Th

2017-05-23 21:14:11 300

原创 电商用户行为分析大数据平台相关系列10-基础数据结构分析

数据结构分析主要是分析数据库表结构,其中包括Hive表以及Mysql表。课程实战中主要用了以下数据表: - user_visit_action(Hive表):用户访问行为表 - user_info(Hive表):用户基本信息表 - task(Mysql表):用户提交任务记录表。1、表结构详细说明:1.1、user_visit_actionuser_visit_action表,其实就是放网站或者

2017-05-23 09:55:59 3812

原创 电商用户行为分析大数据平台相关系列9-用户访问session的模块介绍

1、Session介绍用户在电商网站上,通常会有很多的点击行为,首页通常都是进入首页;然后可能点击首页上的一些商品;点击首页上的一些品类;也可能随时在搜索框里面搜索关键词;还可能将一些商品加入购物车;对购物车中的多个商品下订单;最后对订单中的多个商品进行支付。用户的每一次操作,其实可以理解为一个action,比如点击、搜索、下单、支付用户session,指的就是从用户第一次进入首页session就开

2017-05-23 08:46:19 6744

原创 电商用户行为分析大数据平台相关系列8-数据分析流程

1、离线数据(日志)分析流程离线数据分析是一种非实时数据分析,主要是分析日志、用户操作历史或者对已有历史数据分析。本文将以最常见的日志分析作为介绍,其他类似,只是数据收集方式可能不一样。1.1、数据来源数据来源主要依赖于分析系统服务于哪些业务。如,需要分析用户购物习惯或者分析各个区域热销商品,则需要依赖于购物网站的操作日志或者销售日志。而如果是分析各个地区某一时段通话、上网高峰,则数据来源则是运营商

2017-05-22 10:27:41 7316

原创 电商用户行为分析大数据平台相关系列7-spark安装

1、Spark安装1.1、下载、解压1.2、配置环境变量(/etc/profile或者~/.bashrc),环境变量生效1.3、配置spark-env.shspark-env.sh位于 $SPARK_HOME/confcp spark-env.sh.template spark-env.sh配置如下export JAVA_HOME=/usr/java/latestexport SCALA_

2017-05-18 22:31:29 1275

原创 电商用户行为分析大数据平台相关系列6-flume安装

1、Flume安装1.1、下载、解压1.2、配置环境变量(/etc/profile或者~/.bashrc),环境变量生效vim ~/.bashrc## 环境变量基本与Hadoop,Zookeeper等一致,但是需要注意,配置FLUME_CONF_DIRexport FLUME_HOME=/usr/local/flumeexport FLUME_CONF_DIR=$FLUME_HOME/conf

2017-05-18 00:00:11 849

原创 电商用户行为分析大数据平台相关系列5-KAFKA安装

1、Scala安装1.1、下载、解压1.2、配置环境变量(/etc/profile或者~/.bashrc),环境变量生效1.3、验证是否安装成功scala -version1.4、其他服务器安装通过scp拷贝scala减压目录通过scp拷贝~/.bashrc文件登录服务器,生效环境变脸配置2、Kafka安装### 2.1、下载、解压2.2、配置Kafkavim $KAFKA_HOME/con

2017-05-16 22:53:56 974

原创 电商用户行为分析大数据平台相关系列4-ZOOKEEPER安装

1 zookeeper安装1.1、下载、解压1.2、配置环境变量(/etc/profile或者~/.bashrc),环境变量生效1.3、配置zoo.cfgcp zoo_sample.cfg zoo.cfg修改dataDir(==zookeeper默认存放数据路径为临时文件,如果服务器重启,则文件丢失==)dataDir=$ZOOKEEPER_HOME/data在zoo.cfg新增zookee

2017-05-16 22:52:41 570

原创 电商用户行为分析大数据平台相关系列3-HIVE安装

1 HIVE安装1.1、下载、解压1.2、配置环境变量(/etc/profile或者~/.bashrc),环境变量生效1.3、安装Mysql在spark1安装mysql下载mysql-connector-java-..*.jar,并拷贝到$HIVE_HOME/lib中在mysql创建hive元数据库,并创建hive账号,然后授权。create database if not exists h

2017-05-15 22:21:14 954

原创 电商用户行为分析大数据平台相关系列2-HADOOP环境搭建

1、HADOOP1.1 HADOOP安装1.1.1、下载、解压1.1.2、配置环境变量(/etc/profile或者~/.bashrc),环境变量生效1.1.3、配置Hadoop文件,并创建对应目录修改core-site.xml<property> <name>fs.default.name</name> <value>hdfs://spark1:9000</value></prope

2017-05-15 21:58:07 1598

原创 电商用户行为分析大数据平台相关系列1-环境介绍

最近在自学Spark,看了一些书籍和视频,总是感觉无从下手。拿着一个想法总是无从下手。追其原因,主要是没有系统的学习和使用。对于IT,一切新技术都需要不断实践、不断动手。本着动手的原则,本人通过各种渠道找到一个电商用户行为分析平台,准备从头开始,跟着视频及文档从头完做起,直到完成该项目。 该系列博客主要记录自己的学习过程,顺带着当作笔记以供后续参考。如果有朋友看到该博客,觉得可以借鉴一些东西,也算

2017-05-15 21:51:46 3195 3

原创 Scala模式匹配-值匹配与简单类型匹配

在Scala的模式匹配中,可以使用类型、通配符、序列、正则表达式,甚至可以深入获取对象的状态。这种对象状态的获取遵循一定的协议,也就是对象内部状态的可见性由该类型的实现来控制,这样我们就可以获取暴露的状态并应用于变量中。对象的获取往往被称为“提取”或者“解构”。1、简单匹配简单匹配有点类似Java中的Switch语句,会匹配每一个确定的值。具体如下: def match_boole

2016-12-19 23:48:19 2807

原创 Scala惰性赋值:lazy的使用

在一些情况中我们经常希望某些变量的初始化要延迟,并且表达式不会被重复计算。就像我们用Java实现一个懒汉式的单例。如:打开一个数据库连接。这对于程序来说,执行该操作,代价式昂贵的,所以我们一般希望只有在使用其的引用时才初始化。(当然实际开发中用的是连接池技术)为了缩短模块启动时间,可以将当前不需要的某些工作推迟执行。保证对象中其他字段的初始化能优先执行。在Scala中,使用lazy关键字来实

2016-12-19 21:00:18 4803

转载 Mybatis Generator完整配置详解

最近从网上弄了一份比较全面的Mybatis配置,贴到自己博客里,记录一下,方便后续查找。

2016-12-10 21:15:39 448

原创 Scala中的for推导式

for循环与if语句是各个编程语言中最常用的控制结构语句。在Scala中,for循环的特性被成为for推导式或者for表达式。 我们现在以一个基本的for表达式开始,逐渐熟悉for推导式的各种用法:val dogBreeds = List("Doberman", "Yorkshire Terrier", "Dachshund","Scottish Terrier", "Great Dan

2016-12-07 00:14:39 3492

原创 Scala中if使用

从表面上看,Scala中的if语句看起来很像Java中的If语句。执行时首先判断表达式的值,如果为true,则执行对应代码块。否则进行下一代码块判断。如下:if(2+2 == 5){ println("hello from 1984.")}else if(2+2 ==3){ println("hello from Remedial wath class?")}else{

2016-12-06 23:21:15 9803

原创 告别NullPointerException:Scala中的Option

java.lang.NullPointerException,写过Java代码的人对于这一段异常一定不会陌生。如果说哪一个Java程序员没有遇到过这个异常,我想只有两种情况:1、这个人一定是一个计算机天才,逻辑思维缜密,业务逻辑清晰。2、这仁兄一定没写过代码,至少没有在实际开发中写过代码。空指针异常的来源于null,而null在java中并不是一个实例或者一个类型,它只是Java的一个关键字,nul

2016-11-30 23:32:40 3884

MyBatis Generator 1.3.1

Mybatis Genetrator插件,集成到Eclipse可以加速Mybatis的开发

2016-12-10

JavaWeb面试宝典 pdf

毕业找工作无上利器,涵盖了javaweb开发最基础最常用的问题,能在最短的时间快速学习javaweb开发

2013-12-25

lucene实战第二版

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

2013-12-25

java与模式 源代码

java与模式随书源代码,学习设计模式不可或缺的工具代码

2013-12-25

空空如也

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

TA关注的人

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