- 博客(58)
- 收藏
- 关注
性能优化整体概览
这里我们针对一个具体的场景,来说说一个Web项目的性能优化。场景就是:一个Web前端的请求发出之后,需要等待比较长的时间,才能得到完整的响应。针对这种情况,我们需要怎么考虑呢?三个方面:Web前端层面,应用服务器层面和存储层面。下面我们来简单说说。 一、Web前端性能优化1.优化浏览器的访问,主要包括:减少HTTP的请求数,像各种css、js和图片能合并就合并;使用浏览器缓...
2017-11-12 19:03:52
307
Elastic Search初探第二篇 - Head插件和集群环境搭建
一、Elastic Search的Head插件 在Elastic Search初探第一篇中我们说到了Kibana,通过它我们可以以UI的方式来操作ES、监控ES等。这里分享ES好用的另外一个插件——Head。具体使用步骤如下:第一步:下载插件,地址为:https://github.com/mobz/elasticsearch-head/archive/master.zip;...
2017-10-29 17:17:46
225
原创 Nginx实践(第二篇) - 常用配置
1.Nginx代理静态目录配置server { listen 80; server_name 公网域名; #charset koi8-r; access_log 访问日志目录 main; location / { root 需要代理的静态目录; try_files $uri...
2017-10-22 10:50:42
147
原创 ElasticSerach初探第一篇 - 认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTful API来隐藏Lucene的复杂性。全文搜索,分析系统,分布式数据库;elasticsearch的革命性就在于将这些单一的有用的技术整合成一个一体化的”实时的应用”。 二、ElasticSearch环境搭建1.安装ElasticSearch从官网下载,https://www.el...
2017-10-15 14:18:08
2227
1
Jenkins集成Maven和Git
一、Jenkins集成Maven 1.Jenkins默认集成了Maven integration plugin插件; 2.系统管理 -> 系统设置 -> Global Tool Configuration配置Maven安装目录以及配置文件目录settings.xml 3. My Views -> 具体的构建任务 -&...
2017-02-16 17:01:38
143
原创 Jenkins环境搭建
第一种方式:通过安装包的方式安装jenkins(本地采用的方式) 设置端口:sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 7070启动Jenkins: sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist重启Jenk...
2017-02-16 16:46:22
90
Tomcat环境搭建
1.搜索yum search tomcat 2.安装yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps tomcat6-docs-webapp tomcat6-javadoc 3.查看tomcat安装路径命令rpm -ql tomcat6 | cat -n 4.tomcat启动、关闭和重新启...
2017-02-15 16:21:48
78
SpringBoot之定时器
同传统的Spring项目相比,在基于SpringBoot实现的项目中添加定时器十分容器,那具体怎么做呢? 1.启动类Application添加注解@EnableScheduling; 2.在我们需要定时执行的方法上添加注解@Scheduled 3.实例import org.springframework.scheduling.annotation.Schedul...
2017-02-09 13:58:55
149
SpringBoot之拦截器
大家知道,框架中的拦截器就是用来拦截用户的请求,检查用户的每一个请求是否合法。那么我们基于SpringBoot框架,如何来使用拦截器呢? 1.定义拦截器继承HandlerInterceptorAdapter类,该接口有三个方法,分别如下:a.preHandle(用得比较多):预处理回调方法,实现处理器的预处理(如登录检查) 返回值: true...
2017-02-04 10:38:57
126
原创 Redis之旅第五篇 - Redis高级命令
一 . 事务1.基础概念(1)概念:redis中的事务是一组命令的集合。事务和命令一样都是redis的最小执行单位,一个事务中的命令要么全部执行,要么全部不执行;(2)原理:先将属于用一个事务的所有命令发送给redis服务器,然后再让redis依次执行这些命令。(3)语法示例:127.0.0.1:6379> MULTI OK127.0.0.1:6379> LPUSH...
2017-01-19 14:34:36
169
原创 安装和配置JDK
1.在/usr 目录下建立文件夹java,mkdir java 2.cd java ,执行命令 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8...
2017-01-19 14:34:22
83
原创 Nginx实践(第一篇) - 环境搭建和配置(Mac OSX下)
1、安装Homebrew Homebrew是Mac OSX下的软件包管理工具,就如Red Hat下的yum,Ubuntu下的apt-get。具体安装只需要一步搞定:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" (Mac自带ruby,所以Homebrew...
2016-12-25 12:59:11
133
原创 alias命令为常用目录设置别名
vi ~/.bashrc,配置自己需要的各种别名,如:alias cdhome='cd ~'alias cdroot='cd /'alias gpull='git pull'alias gci='git commit -a'alias gpush='git push origin HEAD:refs/for/master'alias gst='git status'添加source ~/...
2016-12-25 12:55:54
478
Redis之旅第四篇-常用命令
一 . 服务器端命令1. cd /Users/xxx/Documents/redis-3.0.7/src 首先进入redis安装目录;2. ./redis-server 启动redis的服务器;3. ./redis-server --port 6380 修改redis的服务器端口号为6380;二 . 客户端命令(1) 基础命令1. ./redis-cli 连接到默认的redis...
2016-12-24 15:44:24
103
Git常用命令总结
1. git branch dev 新建分支dev,此时只存在于本地2. git checkout dev 切换到dev分支3. git branch 查看本地的所有分支4. git push origin dev 把本地的分支dev推到远程(此时,远程才会有dev分支)5. git branch -r ...
2016-12-24 15:34:53
87
SpringBoot项目架构小实例
一、简介 基本的Spring框架使用久了就会觉得各种配置越来越多,在集成了诸如MyBatis、Struts等框架之后,这种感觉会更加强烈。我们会想,这么多配置,有没有其他的解决方案呢?答案是肯定的,SpringBoot的出现,解决了大量配置的问题。 二、如何用SpringBoot搭建项目架构1、创建一个Maven项目,对应的pom配置如下:<project xml...
2016-12-04 19:57:45
304
原创 Java基础知识回顾第10篇 - 认识Java线程池
一、整体认识 一般的理解就是,当我们需要执行不同任务的时候,针对每一个任务都需要去独立创建一个线程。这样带来的一个问题就是,频繁地创建和销毁线程需要时间,很消耗资源。为了解决这个问题,Java线程池出现了,那么什么是线程池呢? 预先准备好若干个线程等待着执行任务,当任务来了,就从准备好的线程中拿一个线程来执行我们的任务(这里存放线程的容器,我们叫做线程池)。 线程...
2016-09-18 20:15:13
118
Java8新特性
1、新增接口的默认方法,使用default关键字接口可以有实现方法,并且不需要实现类去实现其方法。 package com.test.java8; public interface Formula {double calculate(int num); //Java8新增,接口的默认方法default double sqrt(int num){retur...
2016-09-06 14:46:04
87
Java实现一个简单的队列
队列遵循先进先出的原则,下面看看简单的Demo实例。 package com.tu.test.queue; public class Node {int data;Node next;//next node public Node(int data){this.data = data;}} package com.tu.test.queue;...
2016-09-02 12:12:58
121
Java实现一个简单的栈
栈我们可以理解为一个箱子,先放进去的东西在最下面,所以是一个先进后出的原则。下面我们看看一个简单的Demo。 package com.tu.test.stack; public class Node {int data;Node pre;//previous Node public Node(int data){this.data = data;}}...
2016-09-02 11:46:26
108
常用工具总结
1、Bug管理工具mantis:一款免费开源的轻量级bug管理工具 2、开发过程中有用的插件findBugs:静态分析工具,检查代码的bug。eclipse插件地址:http://findbugs.cs.umd.edu/eclipseeclipse安装Maven插件:http://m2eclipse.sonatype.org/sites/m2e 3、数据库管理工具...
2016-08-23 21:48:37
81
Java基础知识回顾第九篇 - Java异常机制 | 认识多线程
1、Java异常机制(Exception和Error)我们先通过下面的一张图看看java异常层次结构: 从图中可以看出,不管是Exception还是Error,它们都继承自Throwable。下面我们来分别认识一下Exception和Error。 总的来说的,Exception和Error是一种不正常的行为,或许是程序本身导致的,也或许是系统导致的。Exception:可以...
2016-08-14 21:45:20
100
单例模式
1、什么是单例模式?在应用程序中,为了保证一个类只能有一个实例。这个类必须自己创建实例,并且还要能向整个系统提供自己创建的这个唯一实例。 2、单例模式的实现思路实例的创建在类内部完成,对外提供公共的访问方法。 3、单例模式带来的好处很好地控制了系统中类对应实例的个数,并且节约了系统资源。 4、两种单例模式实现方式第一种:懒鬼单例public class...
2016-08-14 16:58:10
95
Java基础知识回顾第八篇 - Session和Cookie | 单点登录
1、Session和CookieSession:在服务器端保持状态的一个方案。存放在服务器上。如果浏览器禁用掉了cookie,如何把session id传递回服务器?放到请求URL上或者隐藏在表单中。在请求过多的情况下,服务器端存放太多session id会造成性能的影响。Session一般用于存放登录信息等重要信息。 Cookie:在客户端保持状态的一个方案。...
2016-08-11 21:43:25
158
动态代理模式
在正式开始动态代理模式的介绍之前,先同大家一起回顾一下代理。那么如何理解代理呢?我们在程序中为了提供额外的或不同的操作,插入的用来代替实际对象的对象,通常充当着中间人的角色。 简单代理示例代码:package com.tu.test.proxy; public interface Interface {void doSomething();void somethi...
2016-08-09 20:21:25
70
Java基础知识回顾第七篇 - 反射Reflect
什么是java反射?核心在于一个对动态二字的理解,即:在运行状态中,能动态获取类的属性和方法,以及动态调用对象的属性和方法。 反射的作用:一方面用于反编译(.class到.java文件),另一方面用来动态访问对象的属性、方法等。 反射机制中主要的类:java.lang.Class; java.lang.reflect.Constructor...
2016-08-09 20:09:02
107
模板方法
使用抽象类抽象出公共的内容,并且定义规则让每一个子类去实现。 1、角色1:抽象类package com.tu.test; public abstract class AbstractTime {public abstract void template();//抽象方法,子类去实现 public final void getTime() {//不需要重写,添加f...
2016-08-07 17:14:21
64
Java基础知识回顾第六篇 - 继承 | Object类 | HTTP协议
1、继承 作为Java面向对象的三大特性之一,它有什么好处呢?一方面提供了代码的重用性;另一方面,使得类和类之间有了关系,提供了面向对象另一特性——多态的前提。 为什么会有父类?对于具有相同属性和行为的类,不断向上抽象,抽取出最基本和共性的内容,就形成了父类。 什么时候使用继承?当类和类之间存在一种所属关系“is a"(如:Dog is a Animal),并且继...
2016-08-07 17:09:35
81
Git学习总结(二)
在Git学习总结(一)中我们认识了Git以及熟悉了Git的一些常用操作,今天主要总结一下Git的分支管理。在实际用Git的过程中,我们都应该是基于分支进行开发(基于安全考虑)。 1、创建新的分支git checkout -b 分支名称(相当于:git branch 分支名称dev;git checkout 分支名称dev) 2、查看所有的分支git branch(...
2016-08-03 20:45:42
123
原创 Git学习总结(一)
推荐一个学习的地址给大家:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 1、认识一下Git Git是一个分布式版本控制系统,那么它和集中式版本控制系统(CVS、SVN等)有什么区别呢?集中式:版本库集中存放在中心服务器,必须联网才能工作分布式:没有中...
2016-08-01 08:38:19
96
Spring MVC结合MyBatis+MySQL小实例
前段时间自己发布了一篇关于SpringMVC结合Redis的小实例,今天呢,想和大家分享一下自己最近使用Spring MVC结合MyBatis+MySQL的小实例,在这里先贴出一下自己在GitHub上共享的代码Demo,下面我会贴出一些核心的内容以及相关总结。GitHub上的Demo地址如下:https://github.com/williamjava/demo 1、准备工作...
2016-07-31 17:16:39
180
Python之旅第一篇
作为后端软件开发人员,至少会一门脚本语言是很有必要的。那么我呢,选择了Python,在朋友的推荐下我开始学习它,为什么选择它呢?脚本语言那么多,也说不上偏爱哪一种,主要是考虑到它应用比较普遍流行。大家可以根据自己的喜好选择脚本语言进行学习:比如Ruby、Shell等。 1、简单认识Python Python是一种面向对象、解释型的动态计算机程序设计语言,Java是...
2016-07-31 16:37:55
129
数据更新假象
在开发的过程中,和数据库打交道是常有的事情,基本上伴随着我们每一天。最近遇到了一个特别诡异的事情,当通过排查各种原因找到问题的根源之后,其实也就是一个很简单的问题。可一些问题,往往是最初会让人抓狂,不知所措。遇到了问题,还是需要冷静下来,对各种情况进行分析,并最终找出问题的解决方案。我特别喜欢一句话:总搞得定! 下面在这里简单和大家分享一下我遇到的这个问题,问题现象如下:...
2016-07-29 15:55:35
95
Java基础知识回顾第五篇 - 各种容器类的选择
在Java实际开发中,我们会常常用到容器,那么各种容器类我们该如何进行抉择呢?在这里进行一个简单的总结。 1、对List的选择 对于随机访问的get()和set()操作,背后有数组支撑的List仅仅ArrayList稍微快一点,但是对于LinkedList,相同的操作会产生高昂的性能消耗,因为它本身就不是针对随机访问操作而设计的。 避免使用Vector,它只...
2016-07-27 21:00:12
114
Spring MVC结合Redis小实例
最近空闲时间,自己打算复习复习Spring MVC,于是使用Maven+Spring MVC+Redis搭建了一个项目,全当是做一个知识回顾。在这个过程当中,也遇到了各种各样的问题,在这里和大家一起分享一下,如有遇到类似问题还没有解决的,希望能帮到大家。下面我将一步步贴出源代码以及总结遇到的一个个问题。 1、项目目录结构 2.pom.xml<project...
2016-07-23 11:25:08
455
工厂模式
1、简单工厂// 抽象产品-人类abstract class Human { public abstract void Eat(); public abstract void Sleep(); public abstract void Beat();} // 具体产品-Manclass Man extends Human{ pub...
2016-07-18 18:02:37
103
Redis之旅第三篇 - Redis数据类型
1、字符串类型赋值:set key value取值:get key 2、散列类型(hash)适用于存储对象,使用对象类别和ID构成键名。a、赋值和取值hset key field valuehsexnx key field value(如果field已经存在,不进行任何操作;field不存在,创建)hget key fieldhmset key field...
2016-07-17 21:32:25
183
Java基础知识回顾第四篇 - &和&&|方法重写重载|成员变量静态变量|抽象类接口多态...
1、&和&&的区别作为逻辑运算符:&(不管左边是什么,右边都参与运算),&&(如果左边为false,右边则不参与运算,短路)另外&可作为位运算符。 2、方法重写(override)和方法重载(overloaded)方法重载:发生在同一个类当中,方法名相同,参数个数、参数类型、参数顺序不同,和返回值类型无关;publ...
2016-07-17 11:49:32
114
Java基础知识回顾第三篇 - 语句块 | 构造方法 调用顺序问题
1、Java类中静态语句块、构造语句块以及构造函数的执行顺序public class Test { public Test() { System.out.println("A");} static{ System.out.println("C");} { System.out.println("B");} pu...
2016-07-15 16:03:30
94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人