自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liyanlei的专栏

学海无涯,温故而知新! Stay Hungry, Stay Foolish

转载 前端SEO技巧

前几天在慕课网上学习了“SEO在网页制作中的应用”,觉得挺好、挺有用的,今天,特此做了一个小小的笔记,也算是对学习过后的一个总结。一、搜索引擎工作原理  当我们在输入框中输入关键词,点击搜索或查询时,然后得到结果。深究其背后的故事,搜索引擎做了很多事情。  在搜索引擎网站,比如百度,在其后台有一个非常庞大的数据库,里面存储了海量的关键词,而每个关键词又对应着很多网址,这些网址是百度

2017-08-29 16:30:34 256

转载 SEO优化

在SEO中的页面优化需要注意的:页面标题:页面标题是包含在title标签中的文字,是页面优化最重要的因素用户访问时,页面标题显示在浏览器窗口最上方。在搜索的结果页面上,页面标题是结构列表中第一行文字,是用户浏览搜索结果时最先看到的、最醒目的内容页面标题不能重复,每个页面都需要自己独特的标题标签。 不要在标题中加上搜索次数高、但与本页面无关的关键词,这种方法在七八年前还管

2017-08-29 11:54:37 407

转载 SpringMVC之静态资源访问

web.xml中的DispatcherServlet对应的/拦截了所有请求,静态资源也无法访问。有的静态资源是需要限制访问的,但有的静态资源(如:css样式文件和js文件、页面用到的图片)我们是不希望进行拦截的。SpringMVC访问静态资源有三种方式。方案一:激活Tomcat的defaultServlet来处理静态文件[html] view plain copy

2017-08-29 11:02:18 263

转载 Intellij14创建Spring-Mybatis项目创(填)建(坑)记录,解决IDEA下找不到xml文件的问题

一直报错找不到Dao,对应的com/neolix/web/mapping/ConsultDao.xml找不到对应的URL,于是到target文件下看了一下,确实没有生成对应的xml文件,那个mapping文件夹直接没有生成,转移到resource下,问题解决!以下是转载:转入Intellij已经有2个月了,编程效率确实比Eclipse快了很多,而且可以直接使用Maven,然后就想写个小

2017-08-22 18:22:34 3795

转载 gitlab新建项目过程和添加用户

github和gitlab的关系(原文:http://blog.csdn.net/carryoner/article/details/51684431)。两者都是基于web的Git repositories(仓库),拥有流水线型的web开发流程,它们为开发团队存储、分享、发布、测试和合作web开发项目提供了中心化的、云存储的场所。Git版本控制——对于多人共同开发一个project来说非常

2017-08-22 15:40:01 658

转载 gitlab上删除项目

最近公司打算把不用svn而是Git来托管代码.然后我自己在公司的gitlab上建立了一个测试项目,这时候删除很容易直接在本页面上.一旦我上传了一些东西之后再删除就隐藏的比较深了.然后上网查的百度教程,发现不行.原因可能是git版本更新完之后,位置变了.摸索了一通之后终于找到了,分享给大家:在project中找到自己建立的项目点击进去点击repository  然后在右上角有个设置

2017-08-22 15:31:46 1521

转载 intellij创建maven web项目

1. 配置mavne,分别选择自己安装好的maven的位置,配置文件,本地仓库的位置。 2. 新建项目,选择maven项目。(file-》new project-》maven)。按照红色框所示选择。这里是根据现有的mavne的模板库创建,我们选择的是archetype-webapp,这是最简单的web模板。 3. 分别填写 GroupId,ArtifacId(具体这些参

2017-08-18 15:51:28 297

原创 怎么在idea中新建package包,只有directory选项

点击右键只有创建directory选项,没有创建package选项,如图:解决方式:标记错了就标记回来,文件夹 右键 --> Mark Directory as --> Source Root

2017-08-17 11:43:52 19995 3

转载 深入理解分布式事务,高并发下分布式事务的解决方案

1、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2、分布式事务的产生的

2017-08-17 10:46:34 383

转载 Spring事务管理(详解+实例)

写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解http://www.mamicode.com/info-detail-1248286.html1

2017-08-17 10:14:18 121

转载 如何优化tomcat配置(从内存、并发、缓存4个方面)优化

Tomcat有很多方面,我从内存、并发、缓存四个方面介绍优化方法。   **一.Tomcat内存优化**  Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。   JAVA_OPTS参数说明   -server 启用jdk 的 server 版;   -X

2017-08-17 10:07:00 195

转载 IDEA+Tomcat+JRebel热部署

在完成idea工程简单应用后,接下来实现热部署。简单应用地址:http://wibiline.iteye.com/admin/blogs/2072454一、安装JRebel插件1. 在线安装 File->setting或者直接点设置的图标进入  在线下载并安装,安装的插件在C:\当前用户下\.jrebel 和.IntelliJIdea13。2. 破解插件

2017-08-17 10:06:12 172

原创 获取事件目标对象的位置坐标或者鼠标位置坐标(兼容IE和火狐)

/*         *         IE:event.clientX 、event.clientY //           FF: event.pageX 、event.pageY       相对文档的水平座标(垂直座标)        --------------------------------------------------------------------

2017-08-17 10:04:40 424

转载 深入理解JVM之四:详解垃圾收集器

http://blog.csdn.net/u011116672/article/details/50994096

2017-08-17 10:03:04 125

转载 一个故事讲清楚NIO

假设某银行只有10个职员。该银行的业务流程分为以下4个步骤:1) 顾客填申请表(5分钟);2) 职员审核(1分钟);3) 职员叫保安去金库取钱(3分钟);4) 职员打印票据,并将钱和票据返回给顾客(1分钟)。  我们看看银行不同的工作方式对其工作效率到底有何影响。1 BIO方式  每来一个顾客,马上由一位职员来接待处理,并且这个职员需要负责以上4个完整流程。当超过10个

2017-08-16 18:34:04 164

转载 如何用消息系统避免分布式事务

http://blog.jobbole.com/89140/

2017-08-16 18:26:30 142

转载 分布式系统事务一致性解决方案

本文首发于InfoQ,版权所有,请勿转载!!!http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency开篇在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数...

2017-08-16 17:02:38 239

转载 BIO,NIO,AIO的区别

一、看图网上很多IO资料,对新手来说,越看越晕。根据自己的理解,总结对比了一下BIO、NIO、AIO。BIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。如下图:NIO(reactor模型):线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。如下图:

2017-08-16 16:17:05 184

转载 spring四种依赖注入方式

平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制

2017-08-16 13:49:00 168

转载 Spring使用静态工厂方法创建Bean

1. 使用静态工厂方法创建Bean    使用静态工厂方法创建Bean实例时,class属性也必须指定,但此时class属性并不是指定Bean实例的实现类,而是静态工厂类。因为Spring需要知道是用哪个工厂来创建Bean实例。另外,还需要使用factory-method来指定静态工厂方法名,Spring将调用静态工厂方法(可能包含一组参数),来返回一个Bean实例,一旦获得了指定Bean实例

2017-08-16 12:05:02 252

转载 spring事物配置,声明式事务管理和基于@Transactional注解的使用

事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性。spring支持编程式事务管理和声明式事务管理两种方式。        编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。        声明式

2017-08-16 09:59:49 245

转载 Java 开发必会的 Linux 命令

作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help查看帮助或者直接通过google搜索学习。1.查找文件

2017-08-15 17:27:50 236

转载 闲谈Tomcat性能优化

Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈.幸好Tomcat还有很多的提升空间.下文介绍一下Tomcat优化,可以分为内存,线程,IO.一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)Windows 下的catalina.bat

2017-08-15 16:40:59 172

转载 深入理解java虚拟机(十) Java 虚拟机运行时栈帧结构

运行时栈帧结构栈帧(Stack Frame) 是用于虚拟机执行时方法调用和方法执行时的数据结构,它是虚拟栈数据区的组成元素。每一个方法从调用到方法返回都对应着一个栈帧入栈出栈的过程。每一个栈帧在编译程序代码的时候所需要多大的局部变量表,多深的操作数栈都已经决定了,并且写入到方发表的 Code 属性之中,一次一个栈帧需要多少内存,不会受到程序运行期变量数据的影响,仅仅取决于具体的虚拟机实现。

2017-08-15 15:55:17 177

转载 SpringMVC工作原理

SpringMVC框架介绍Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 We

2017-08-15 15:52:26 175

转载 java动态代理原理及解析

java动态代理原理及解析

2017-08-15 15:51:48 160

转载 Spring3:AOP

AOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对

2017-08-15 15:51:18 133

转载 java动态代理原理及解析

代理:设计模式代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。通过代理层这一中间层,有效的控制对于真实委托类对象的直接访问,同时可以实现自定义的控制策略(spring的AOP机制),设计上获得更大的灵活性。java动态代理的类和接口(jdk1.6源码

2017-08-15 15:32:37 270

转载 java的动态代理机制详解

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口

2017-08-15 15:03:32 143

转载 Java动态代理的两种实现方法

AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdviseInterceptor以及ThrowsAdviseIntercepto

2017-08-15 15:01:24 173

转载 Spring之AOP由浅入深

1.AOP的作用  在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加。AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。2.DI...

2017-08-15 12:33:36 167

转载 grep 命令

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响

2017-08-14 11:44:52 281

转载 linux 下查找文件或者内容常有命令

whereis 查找软件的安装路径-b 只查找二进制文件-m 只查找帮助文件-s 只查找源代码-u 排除指定类型文件-f 只显示文件名-B 在指定目录下查找二进制文件-M 在指定目录下查找帮助文件-S 在指定目录下查找源代码locate 在文件索引数据库中搜索文件-d 搜索指定数据库updatedb更新文件索引数据库f

2017-08-14 11:44:33 225

转载 为什么工厂模式是华而不实的—浅谈工厂模式的利与弊

转载请注明出处:http://blog.csdn.NET/singwhatiwanna/article/details/17428923说明:博主虚心接受大家的抨击,批评,指正前言我一直想介绍下工厂模式,我曾经搞过J2EE,用的是轻量级SSH框架,其中spring有IOC概念,可以称之为控制反转或者依赖注入,在系统开发中,IOC可以很好的替代工厂模式。若干年前,我只用过IOC,

2017-08-14 11:43:50 189

转载 三种工厂模式区别总结

工厂模式分为三种:简单工厂、工厂模式和抽象工厂模式。三者之间存在哪些异同呢?先分别看看各个模式的特点一、     简单工厂模式:实现了算法和界面的分离,也就是将业务逻辑和界面逻辑分开了,降低了耦合度。算法的封装:  定义一个抽象的算法接口,提供不同算法的公共接口方法。其他具体算法继承这个抽象类,并实现具体的算法。简单工厂类:  作为一个独立的类,实现了针对不同的算法

2017-08-14 11:43:10 224

转载 设计模式笔记--设计模式比较

一、创建类模式大PK创建类模式包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,它们都能够提供对象的创建和管理职责。其中的单例模式和原型模式非常容易理解,单例模式是要保持在内存中只有一个对象,原型模式是要求通过复制的方式产生一个新的对象,这两个不容易混淆。剩下的就是工厂方法模式、抽象工厂模式和建造者模式了,这三个之间有较多的相似性。  1、工厂方法模式VS

2017-08-14 11:42:57 1138

转载 设计模式:各个模式间的对比

建造者模式、抽象工厂模式、工厂模式的区别建造者模式和抽象工厂模式 与抽象工厂模式相比,建造者模式返回一个组装好的完整产品,而抽象工厂模式返回一系列相关的产品,这些产品位于不同的产品登记结构,构成了一个产品族。在抽象工厂模式中,客户端实例化工厂类,然后调用工厂方法获取所需产品对象,而在建造者模式中,客户端可以不直接调用建造者的相关方法,而是通过指挥者类来指导如何生成对象,包括对象

2017-08-14 11:42:16 139

转载 Java多线程知识小抄集(一)

本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。1. interrupted与isInterrupted的区别interrupted():测试当前线程是否已经是中断状态,执行后具有状态标志清除为false的功能。 isInterrupted():

2017-08-14 11:34:12 209

转载 Java多线程知识小抄集(二)

本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。27. ConcurrentHashMapConcurrentHashMap是线程安全的HashMap,内部采用分段锁来实现,默认初始容量为16,装载因子为0.75f,分段16,每个段的HashEntr

2017-08-14 11:33:49 183

转载 Java多线程知识小抄集(三)

本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。51. SimpleDateFormat非线程安全当多个线程共享一个SimpleDateFormat实例的时候,就会出现难以预料的异常。主要原因是parse()方法使用calendar来生成返回

2017-08-14 11:33:24 27

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