转
文章平均质量分 71
hjxgood
这个作者很懒,什么都没留下…
展开
-
JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试
Spring框架学习路线Spring的IOCSpring的AOP,AspectJSpring的事务管理,三大框架的整合Spring框架概述什么是Spring? Spring是分层的JavaSE/EE full-stack(一站式)轻量级开源框架。所谓分层:SUN提供的EE的三层结构:web层、业务层、数据访问层(也称持久层,集成层)。St转载 2017-04-23 11:27:36 · 1793 阅读 · 0 评论 -
全栈必备 缓存cache
Cache: a collection of data duplicating original values stored elsewhere on a computer, usually for easier access—— 维基百科缓存是系统快速响应中的一种关键技术,是一组被保存起来以备将来使用的东西,介于应用开发和系统开发之间,是产品经理们经常顾及不到的地方,算是技术架构中的转载 2016-11-18 10:43:16 · 634 阅读 · 0 评论 -
全栈必备MySQL性能调优
对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库……林林总总,但是第一必备技能还应该是MySQL。从LAMP的兴起,到Mariadb的出现,甚至PG的到来,熟练的MySQL技能都是大有用武之地的。MySQL数据库技术的方方面面也是很多,这里只涉及必备的性能调优,推崇从下向上的性能调优,主要包括运行环境,配置参数,转载 2016-11-18 10:42:06 · 721 阅读 · 0 评论 -
全栈必备 负载均衡
一个了不起的创意会产生一个很棒的产品,如果它一炮走红,你发现手中的是下一个facebook 或者twitter,而且随着用户越来越多,会变得越来越慢,该怎么办呢?对全栈而言,解决这类问题的一个重要技能就是——负载均衡。什么是负载均衡负载(load)一词起源于典型系统,指连接在电路中消耗电能的装置,负载(用电器)的功能是把电能转变为其他形式能。引申出来,一个是实体,一个转化。转载 2016-11-18 10:31:26 · 621 阅读 · 0 评论 -
Java多线程之Lock的使用
Java多线程之Lock的使用类 ReentrantLock 具有完全互斥排他的效果,即同一时间只有一个线程在执行 ReentrantLock.lock() 方法后面的任务。这样做虽然保证了实例变量的线程安全性,但效率却是非常低下的。所以在JDK中提供了一种读写锁 ReentrantReadWriteLock类,使用它可以加快运行速率,在某些不需要操作实例变量的方法中,完全可以使用读写锁转载 2016-11-09 10:10:35 · 363 阅读 · 0 评论 -
java中实现同步的两种方式:syschronized和lock的区别和联系
Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下: public class LockTest { public st转载 2016-11-09 10:02:38 · 1950 阅读 · 0 评论 -
MySQL中select * for update锁表的范围
MySQL中select * for update锁表的问题由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行TableLock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。例1: (明确指转载 2016-11-09 09:57:49 · 406 阅读 · 0 评论 -
大数据量下高并发同步的讲解
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1、同步和异步的区别和联系 所谓同步,可以理解为在转载 2016-11-09 09:55:00 · 363 阅读 · 0 评论 -
应用Druid监控SQL语句的执行情况
Druid是什么?Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。同时Druid不仅仅是一个数据库连接池,它包括四个部分:D转载 2016-09-26 10:06:22 · 473 阅读 · 0 评论 -
web.xml中webAppRootKey
1、 web.xml配置 webAppRootKeywebapp.root"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。 可以用System.getProperty("webapp.root")来动态获项目的运行路径。一般返回结果例如:/usr/local/tomcat6/webapps/项目名2、解转载 2015-09-08 14:04:48 · 503 阅读 · 0 评论 -
ie浏览器的标准模式与怪异模式的设置与区分方法
由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同。在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars mode),这就是二者最简单的区别。转载 2015-05-22 11:44:09 · 3253 阅读 · 0 评论 -
JQuery的Ajax跨域请求的解决方案
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发现JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式。 什么是js转载 2015-03-11 15:14:51 · 674 阅读 · 0 评论 -
Dom4j解析XML
1、DOM4J简介 DOM4J是 dom4j.org出品的一个开源 XML 解析包。DOM4J应用于 Java平台,采用了 Java 集合框架并完全支持 DOM,SAX和 JAXP。 DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM模型,就能使用。 Dom:把整个文档作为一个对象。 DOM4J 最大的特色是使用大量的接口。它转载 2014-12-04 14:14:32 · 965 阅读 · 0 评论 -
Java格式化输出 Dom4j转义字符问题
1,XML CDATA部件:在XML文档中的所有文本都会被解析器解析。只有在CDATA部件之内的文本会被解析器忽略。不合法的XML字符必须被替换为相应的实体。如果在XML文档中使用类似"<小于号>>大于号&&和''单引号转载 2014-12-04 14:32:28 · 2483 阅读 · 0 评论 -
JqueryMobile链接一个页面,而链接页面中图片需刷新才显示的问题
最近在做一个项目,由于涉及到跨平台性,所以采用了jquerymobile这个框架,在开发过程中,一开始为了图测试方便,采用了chrome浏览器来测试运行。现叙述如下问题:当在first.html中,有个链接如:登录 而在second.html中,譬如我引用了highcharts这个jquery图表插件,会在second.html页面中生成一些图表。 可是这种情况,当我用ch转载 2014-12-04 14:12:23 · 490 阅读 · 0 评论 -
关于大型网站技术演进的思考(一)--存储的瓶颈(上)
前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。 首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡转载 2015-01-26 15:15:11 · 782 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(中)
大型网站架构改进历程:存储的瓶颈(中)发表于2015-01-23 15:09| 2929次阅读| 来源博客园| 8 条评论| 作者夏天的森林数据存储网站架构大数据 摘要:在高并发的情况整个网站系统首先暴露出问题的是数据库,如果我们把整个网站系统比作一个盛水的木桶,那么木桶最短的那个板就是数据库了,一般而言网站的服务应用出问题都会是解决存储问题之后才会出现。【转载 2015-01-26 15:11:42 · 2080 阅读 · 0 评论 -
全栈必备Linux 基础
Linux 几乎无处不在,不论是服务器构建,还是客户端开发,操作系统的基础技能对全栈来说都是必备的。系统的选择Linux发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。Redhat,应该称为Redhat系列,包括RHEL、Fedora、CentOS(RHEL的社区克隆转载 2016-11-18 10:47:28 · 627 阅读 · 0 评论 -
play! framework 问题 The JPA context is not initialized
在使用play! framework时遇到 The JPA context is not initialized 这是由于 你是用了自己的线程,play框架 默认是每个request请求中 或者 继承了Job 的定时定点任务中,初始化了JPA EntityManager对象的,如果是你自己的线程这没有,需要你自己设置。如下图class Runner extends转载 2016-12-01 17:44:44 · 683 阅读 · 0 评论 -
从百万级别数据的分析角度,Mysql,Mongodb,Hbase如何选择?
百万级的数据,无论侧重OLTP还是OLAP,当然就是MySql了。过亿级的数据,侧重OLTP可以继续Mysql,侧重OLAP,就要分场景考虑了。实时计算场景:强调实时性,常用于实时性要求较高的地方,可以选择Storm;批处理计算场景:强调批处理,常用于数据挖掘、分析,可以选择Hadoop;实时查询场景:强调查询实时响应,常用于把DB里的数据转化索引文件,通过搜索引擎来查询,可以转载 2016-12-12 10:34:35 · 754 阅读 · 0 评论 -
实现读写分离的Web工程
前言 本工程基于Spring提供的AbstractRoutingDataSource,实现了一个动态数据源的功能,即可以做到,当往数据库里面写数据时,则将数据写到一个数据库当中,一般称为写数据库;当要查询数据时,则获取另一个数据库中的信息,这个数据库一般称为读数据库。这样做,有利于提高网站的性能,特别是在数据库这一层。本工程就是实现了这样一个功能,当然对于写数据库如何跟读数据库如何同转载 2017-04-23 11:24:25 · 2159 阅读 · 0 评论 -
Java异常的深入研究与分析
异常机制概述异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。异常处理的流程当程序中抛出一个异常后,程序从程序中导致异常的代码处跳出,java虚拟机检测寻找和try关键字匹配的处理该异常的catch块,如果找到,将控制权交到catch块中的代码,然后继续往下执行程序,t转载 2017-04-21 15:50:26 · 548 阅读 · 0 评论 -
java泛型详解
在日常的开发中,我们会看到别人的框架很多地方会使用到泛型,泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。本篇博客我们就来详细解析一下泛型的知识。泛型类定义及使用使用泛型有什么好处呢?首先转载 2017-04-21 15:11:39 · 586 阅读 · 0 评论 -
设计模式学习之Builder模式
建造者模式(Builder Pattern),是创造性模式之一,Builder 模式的目的则是为了将对象的构建与展示分离。Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。模式的使用场景1.相同的方法,不同的执行顺序,产生不同的事件结果时; 2.多个部件或零件,都可以装配到一个对象中,但是产生的运转载 2017-04-21 15:09:57 · 4311 阅读 · 0 评论 -
设计模式学习之观察者模式
观察者模式在实际项目中使用的也是非常频繁的,它最常用的地方是GUI系统、订阅——发布系统等。因为这个模式的一个重要作用就是解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也经常性变化,但是业务逻辑基本变化不大,此时,GUI系统需要一套机制来应对这种情况,使得UI层与具体的业务逻辑解耦,观察者模式此时就派上转载 2017-04-21 15:08:10 · 458 阅读 · 0 评论 -
设计模式学习之模版方法模式
模板方法模式是一种基于继承的代码复用的行为型模式;在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果。本篇博客我们一起来学习模版方法模式。定义与UML图定义 模板方法模式:定转载 2017-04-21 15:05:48 · 340 阅读 · 0 评论 -
设计模式学习之策略模式
写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题,本篇博客就带你详细了解策略模式。策略模式的定义和使用场景定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。分析下定义,策略模式定义和封装了一系转载 2017-04-21 15:04:24 · 290 阅读 · 0 评论 -
设计模式学习之代理模式
代理模式,可以分为两种,一种是静态代理,一种是动态代理。 两种代理从虚拟机加载类的角度来讲,本质上都是一样的,都是在原有类的行为基础上,加入一些多出的行为,甚至完全替换原有的行为。在我们平时写代码的过程中,代理模式可以说是随处可见,所以,本篇博客就将给大家介绍代理模式。基本概念代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象转载 2017-04-21 15:03:04 · 488 阅读 · 0 评论 -
Play框架的请求处理流程1
Play框架使用事件驱动模型,以提供在不可预知的使用环境下的灵活的处理能力。在一个web应用中,事件主要指用户向服务器发起一次HTTP请求。对于Play框架,此类事件定义在routes文件中,play根据routes文件的内容以及用户的请求,确定应该调用哪些过程。Play框架使用了Netty服务器,该服务器使用管道(pipeline),提供了在高并发情况下的优秀的异步处理能力。当服务器接收转载 2016-12-28 17:29:12 · 2621 阅读 · 1 评论 -
Java分布式应用技术架构介绍
分布式架构的演进系统架构演化历程-初始阶段架构初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序、数据库、文件等所有的资源都在一台服务器上。描述:通常服务器操作系统使用Linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用MySQL,汇集各种免费开源软件以及一台廉价服务器就可以开始系统转载 2016-12-27 16:00:46 · 667 阅读 · 0 评论 -
JVM原理讲解和调优
一、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而转载 2016-12-27 15:56:34 · 58545 阅读 · 6 评论 -
系统架构演化历程
1. 初始阶段的网站架构 网站最开始没有太多人访问,只需要一台服务器绰绰有余,如图1,这时应用程序、数据库、文件等所有的资源都在一台服务器上。通常是Linux+Apache+MySQL+PHP架构。2. 应用服务器和数据服务分离 随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这是就需要将应用和数据分离。转载 2016-12-27 15:54:47 · 3626 阅读 · 0 评论 -
java系统高并发解决方案
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是转载 2016-12-06 10:59:44 · 1035 阅读 · 0 评论 -
构建高并发高可用的电商平台架构实践
一、 设计理念 1. 空间换时间 1) 多级缓存,静态化客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)反向代理缓存应用端的缓存(memcache)内存数据库Buffer、转载 2016-12-06 10:51:06 · 783 阅读 · 0 评论 -
云计算的三种服务模式:IaaS,PaaS和SaaS
云计算的三种服务模式:IaaS,PaaS和SaaS 云服务”现在已经快成了一个家喻户晓的词了。如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道。 “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务。 任何一个使用基于互联网的方法来计算,存储和开发的公司,都可以从技术上转载 2014-01-16 17:31:46 · 339709 阅读 · 6 评论 -
如何用redis/memcache做Mysql缓存层?
1.首先明确是不是一定要上缓存,当前架构的瓶颈在哪里,若瓶颈真是数据库操作上,再继续往下看。2.明确memcached和redis的区别,到底要使用哪个。前者终究是个缓存,不可能永久保存数据(LRU机制),支持分布式,后者除了缓存的同时也支持把数据持久化到磁盘等,redis要自己去实现分布式缓存(貌似最新版本的已集成),自己去实现一致性hash。因为不知道你们的应用场景,不好说一定要用转载 2016-12-12 10:35:41 · 1364 阅读 · 0 评论 -
arrayToJson将数组转化为json格式的js代码
//去除空格function trim(str){ return str.replace(/\s|\xA0/g,"");}/***js数组转json**/ function arrayToJson(o) { var r = []; if (o==undefined||o==null) return "null"; if (typeof o =转载 2014-06-12 17:27:25 · 4793 阅读 · 0 评论 -
MySQL单列索引和组合索引的区别介绍
MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习。为了形象地对比两者,再建一个表:CREATE TABLE myIndex ( i_testID INT NOT NULL AUTO_INCREMENT, vc_Name VARCHAR(50) NOT NULL, vc_Ci转载 2014-06-19 18:08:09 · 438 阅读 · 0 评论 -
小实验-ActiveMQ实现jms监听队列
http://wenku.baidu.com/view/8796d820482fb4daa58d4bca.html转载 2014-02-22 17:18:17 · 1295 阅读 · 0 评论 -
oracle数据类型和对应的java类型
地址:http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/datacc.htm#BHCJBJCCSQL数据类型JDBC类型代码标准的Java类型Oracle扩展的Java类型 1.0标准的JDBC类型:转载 2014-02-22 17:13:14 · 1730 阅读 · 0 评论