自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 SVN与测试环境集成

    在上一章中讲述了非Apache模式的svn安装。安装完成svn后,就可以实现svn提交代码同步更新测试环境中的代码了(即实现svn和测试环境的集成)。    当然,我们在开发中会存在至少三套环境,即:开发自测环境(本地生产环境)、专业测试环境(与正式环境同步)、正式服务环境。要处理好三套环境中的代码管理,这也不是一件很容易的事情,需要根据各公司项目组的安排。我就不讲我们的处理方案了(呵呵保...

2014-07-28 11:20:56 332

原创 linux安装svn(非apache集成)

     svn支持三种方式的安装,分别是:svnserve服务器、穿越ssh隧道的svnserve服务器、Apache的HTTP服务器。三种服务器的选择(建议下载一本svnbook查看,在第六章服务配置中有详细描述):①svnserve服务器:    优点: 设置快速简单;网络协议是有状态的,比WebDAV快很多;不需要在服务器创建系统账号;不会在网络传输密码。    缺点:没有任何类型的日...

2014-07-28 11:14:35 115

原创 通过linux的iso镜像安装(RPM)扩展工具包

    在linux安装软件时,现在越来越流行通过rpm指令安装完成,原因是:采用RPM安装简单方便;越来越多的软件提供RPM安装包;linux的IOS镜像文件自带了非常多的系统扩展RPM安装包,且这些软件版本是最适合当前linux系统的。正是基于上面这些因素,所以我们在安装软件的过程中,建议通过RPM安装。在安装一些基础扩展软件的时候,其实我们很多时候,不需要去网上下载RPM包,因为linu...

2014-07-28 11:05:27 1400

原创 virtualbox设置共享文件夹

     我们在开发过程中,一般的开发环境是windows,但是如果需要linux开发测试环境,就需要虚拟机的帮助。当前常用的虚拟机有vware、virtualbox等。vware功能强大,但是占用的资源比较多;virtualbox功能也非常丰富,资源占用量较小,推荐使用。在采用虚拟机搭建linux系统后的实际操作中,常常需要与本地环境共享一些文件,下面讲解的就是如何通过virtualbox使...

2014-07-28 10:56:01 132

原创 php垃圾回收之回收策略和算法

一、垃圾回收实现方式     在以前的php中用到的是引用计数机制处理垃圾回收问题,但是这个机制存在一个弊端,就是无法处理循环引用引起的内存泄露。然而在php5.3.0以后的版本中(包含5.3.0)使用了专门GC机制(同步算法)清理垃圾,来处理这个内存泄露问题。下面就是介绍它是如何实现的:    首先要了解几个基本的准则:1:如果一个zval的refcount增加,那么此zval还...

2014-07-25 16:06:11 182

原创 php垃圾回收之引用计数

一、引用计数基本知识    每个php变量存在一个叫“zval”的变量容器中,一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是“is_ref",是个bool值,用来标识这个变量是否属于引用集合。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制来优化内存使...

2014-07-25 13:44:37 103

原创 深入理解php变量

     我们知道php是一个弱类型,动态的脚本语言。所谓弱类型,就是说php并不严格验证变量类型,在声明一个变量的时候,并不需要指明它保存的数据的类型。例如:$var = 1; //int$var = "laruence"; //string$var = 1.0002; //float$var = array(); // array$var = new Exception...

2014-07-24 15:56:25 95

原创 常见的php运行方式

    SAPI:Server Application Programming Interface服务端应用编程端口。他就是php与其他应用交互的接口,php脚本要执行有很多中方式,通过web服务器,或者直接在命令行行下,也可以嵌入其他程序中。SAPI提供了一个和外部通信的接口,常见的SAPI有:cgi、fast-cgi、cli、Apache模块的dll等。1、CGI     CGI即通...

2014-07-24 15:16:37 197

原创 php生命周期

     这里介绍的php生命周期,就是php在请求调用过程中,经过了那些操作,都是完成了什么工作。要想了解这个过程,一切就需要从ASPI开始。     SAPI(Server Application Propramming interface)指的是PHP具体应用的编程接口,他提供了一个接口,使得PHP可以和其他应用进行交互数据。PHP脚本要执行可以有很多方式,例如web服务器请求加载(...

2014-07-23 13:32:13 92

原创 通过面试题目学习php之编程题

1、编写一个自定义函数提取这段路径的的后缀名。例如:http://www.baidu.com/hello/test.php.html?a=3&b=4需要取出php或.phpfunction geturltype($url){ $info=parse_url($url); return end(explode('.',$info['path']));}...

2014-07-22 10:39:00 153

原创 通过面试题目学习php之问答题

1、http状态码,及其说明。答:php通过设置header信息返回http状态码,例如返回404:header(“HTTP/1.1 404 Not Find”);    HTTP状态码是用以表示网页服务器HTTP响应状态的3位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。1xx 消息,这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应...

2014-07-22 10:33:08 217

原创 通过面试题目学习php之简答题

1、 请简述echo、print和print_r的区别?答:echo和print实际上都不是函数,而是一个语法结构。不同的是echo返回值是void,并且可以输出多个参数值;而print返回值是int(总是返回1),且只能输出一个字符串值。Print_r是一个输出函数,返回值为boolean型,如果给出的是 string、integer或 float,将打印变量值本身...

2014-07-22 10:27:51 182

原创 通过面试题目学习php之填空题

1、  判断一个变量是否存在的函数:isset判断一个变量是否为null的函数:is_null判断一个变量是否为空的函数:empty销毁一个变量的函数:unset2、$a =array(1,2);unset($a[0]);print_r($a);echo count($a);请写出输出结果:答:array(1=>2)  ;  13、$str = '...

2014-07-22 10:23:08 836

原创 php-fpm优化说明

     php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少;另一种则是开始的时候开启一定数量的php-fpm进程,当请求量变大的时候,动态的增加php-fpm进程数到上限,当空闲的时候自动释放空闲的进程数到一个下限。     这两种不同的执行方式,可以根据服务器的实际需求来进行调整。     这里先说一下涉及到这个的几个参数吧,他们分别是pm、pm...

2014-07-21 10:10:34 102

原创 nginx配置文件详解

#运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;#工作模式及连接数上限events {use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一...

2014-07-21 10:02:46 87

原创 Linux安装nginx

1、环境准备。查看是否已经安装gcc和gcc-c 。 which gcc;如果没有安装运行:yum -y install gcc which g ;如果没有安装运行:yum -y install gcc-c 2、安装pcre。下载地址:http://download.chinaunix.net/download/0008000/7913.shtml(这个主要用来处理http-rewrite。如果...

2014-07-21 09:55:35 80

原创 linux安装php

一、安装GD,这是php对图片库的支持库。①安装freetype(这是一个字体引擎)。下载:http://download.chinaunix.net/download/0004000/3295.shtml解压:tar -zxvf freetype-version.tar.gz.进入:cd freetype-version.预编译:./configure --prefix...

2014-07-20 14:51:57 94

原创 Linux安装mysql数据库

1、环境查看与准备:①查看centos在安装的时候,是否已经mysql服务。由于centos默认安装的mysql有时候版本太低,而且也不符合我们生产环境的要求,一般我们都自己安装。查看mysql是否已经安装:rpm -qa |grep mysql;如果发现有(mysql-server-version),则说明centos已经安装mysql了,这时需要我们删除掉默认安装的版本,指令:rpm ...

2014-07-20 14:15:48 82

原创 Linux配置防火墙开放/关闭对外端口

①、修改/etc/sysconfig/iptables配置,开发对外接口。修改CentOS防火墙时注意:一定要给自己留好后路,留VNC一个管理端口和SSh的管理端口下面是一个iptables的示例:# Firewall configuration written by system-config-securitylevel# Manual customization of this fi...

2014-07-20 14:07:15 1037

原创 Linux安装配置ftp服务

①以管理员身份查看vsftpd是否已经安装:rpm -qa |grep vsftpd  产看vsftpd安装目录:rpm -ql |grep vsftpd②如果没有安装,运行:yum -y install vsftpd,安装完成后启动服务:service vsftpd start。  然后测试:sftp 127.0.0.1(which--查找可执行脚本路径,whereis--查找文件路径,up...

2014-07-20 14:02:38 91

原创 Linux中SSH服务配置以及无密码登陆

一、配置SSH服务①修改/etc/ssh/sshd_config配置文件。  根据模板将需要修改的参数注释去掉并修改参数值:  Port 22 指定ssh连接的端口号,安全方面不建议使用默认端口22.  Protocol 2,1 允许SSH1和SSH2连接,建议设置成 Protocal 2  其他参数根据自己的需要进行调整。配置方法详见: man ssh_config②修改/etc/h...

2014-07-20 13:59:39 171

原创 WebService编程详解之客户端编写

一、wsdl2java用法wsdl2java -p com -d src -all  aa.wsdl    -p  指定其wsdl的命名空间,也就是要生成代码的包名:    -d  指定要产生代码所在目录    -client 生成客户端测试web service的代码    -server 生成服务器启动web  service的代码    -impl 生成web s...

2014-07-19 18:26:32 120

原创 WebService编程详解之安全应用

一、概述CXF 的 WS-Security 实现基于开放源码的 WSS4J 库。Axis2 代码也使用这个库,因此这两个堆栈的 WS-Security 配置细节有一些相似之处。但是,通过解释 WS-SecurityPolicy 配置 WSS4J 的代码层不一样。在 Axis2 中这由单独发布的 Rampart 模块处理,而在 CXF 中由 cxf-rt-ws-policy 和 cxf-rt...

2014-07-19 18:19:28 191

原创 WebService编程详解之Interceptor和Handler

一、有关调用CXF拦截器    1、拦截器概述    Interceptor是CXF架构中一个很有特色的模式。你可以在不对核心模块进行修改的情况下,动态添加很多功能。这对于CXF这个以处理消息为中心的服务框架来说是非常有用的,CXF通过在Interceptor中对消息进行特殊处理,实现了很多重要功能模块,例如:日志记录,Soap消息处理,消息的压缩处理。       在Interc...

2014-07-19 18:01:14 346

原创 WebService编程详解之配置篇

一、采用CXF+Spring构建WebService服务端(1)在Myeclipse中创建一个web工程,并将Apache-cxf-2.3.x/lib中的jar包拷贝到:工程名\WebRoot\WEB-INF\lib下。(2)在工程中编写WebService的interface和implements,注意在编写接口和实现类的过程中需要应用到各种类型的Annotation,用来描述web...

2014-07-19 17:52:56 399

原创 java web编程web.xml详解

     一般的java web工程中都会用到web.xml,web.xml在Java web工程的WEB-INF目录下,web.xml主要的功能就是用来配置站点信息,主要的配置项有:①站台的名称和说明;②针对环境参数(Context)做初始化工作;③Servlet的配置(包括Filter、Listener、Servlet);④Tag Library的对应;⑤JSP网页设定;⑥Mime Typ...

2014-07-19 17:20:40 432

原创 log4j的配置详解

     Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。在这里讲解log4j,一方面因为log4j在Java开发中是非常常用的日志输出控制部件,也是因为在hadoop中有一个flume组件,它监听数据的方式配置与这里非常相似,所以在这里...

2014-07-18 22:39:26 132

原创 定时任务管理之java篇quartz使用

     在开发过程中,我们经常会遇到一些需要异步定期执行的批处理任务。比如夜里低峰时段的备份、统计,或者是每周、每月对数据库表进行整理,这时就需要通过使用定时任务管理器来辅助我们完成这些任务的定时触发。常见的定时任务管理器多分为三类,分别是:     ①操作系统(OS)级别的定时任务管理器,例如linux的crontab、windows自带的计划任务。OS级不用专门开启监听器,占用系统资...

2014-07-18 20:38:19 2298

原创 软件的可维护性与可复用性

     通常认为,一个易于维护的系统,就是复用率较高的系统;而一个复用性较好的系统,就是一个易于维护的系统。但是实际上,可维护性和可复用性是两个独立的目标,就像两只奔跑的兔子一样,并不总是方向一致的。     对于面向对象的软件系统设计来说,在支持可维护性的同时,提高系统的可复用性是一个核心的问题。一、软件系统的可维护性     软件开发是一个比较快速的过程,一般只需要半年时间。...

2014-07-16 21:33:37 1157

原创 认识系统架构模式MVC

一、什么是MVC模式     所谓的MVC模式,即模型-视图-控制器(Module-View-Controller)模式。它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。MVC示意图如下:视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用...

2014-07-16 21:00:51 175

原创 代理模式(Proxy)

     代理模式是对象的结构模式,代理模式给某一个对象提供一个代理对象,并由代理对象控制原对象的引用。换言之,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。一、代理的种类①远程代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是本机器中,也可...

2014-07-16 21:00:14 127

原创 适配器模式(Adapter)

     适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。     在大规模的系统开发过程中,我们常常碰到诸如以下这些情况:我们需要实现某些功能,这些功能已有还不太成熟的一个或多个外部组件,如果我们自己重新开发这些功能会花费大量时间;所以很多情况下会选择先暂时使用外部组件,以后再考虑随时替换。但这样一来,会带来一个问题,...

2014-07-15 23:10:07 134

原创 原始模型模式(prototype)

     原始原型模式属于对象创建模式。通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原始模型模式。例如,在西游记中,孙悟空可以揪下一把毫毛,变出多个孙悟空,和他本身几乎一模一样,换言之,孙悟空可以根据自己的形象,复制出很多”身外之身“类,这就相当于采用了原始原型模式。     在Java语言中构件模型直接支持原始模型模式。所有的...

2014-07-14 23:31:46 346

原创 构造模式(Builder)

    构造模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。具体的操作过程是:构造模式利用一个导演者对象和具体构造者对象一个一个的构造出所有的零件,从而构造出完整的产品对象;并且构造者模式将产品的结构和产品的零件构造过程对客户端隐藏起来,把对构造过程进行指挥的责任和具体构造者零件的责任分割开来,达到责任划分和封装的目的。     应当指出的是,这些零件有可能...

2014-07-14 20:49:25 299

原创 多例模式

     多例模式中的多例类可以有多个实例,而且多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。一、多例模式的特点     所谓的多例模式,实际上就是单例模式的自然推广。作为对象的创建模式,多例模式或多例类有以下特点:①多例类可有多个实例;②多例类必须自己创建、管理自己的实例,并向外界提供自己的实例;二、多例模式实例1、有上限的多例类     一个实例数目有上限...

2014-07-14 11:32:21 315

原创 单例模式

     单例模式确保某一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例。这个类成为单例类。单例模式有三个要点:①某个类只能有一个实例;②它必须自行创建这个实例;③它必须自行向整个系统提供这个实例。一、在什么情况下使用单例模式     使用单例模式有一个必要的条件:在一个系统要求一个类只有一个实例时才应当使用单例模式。反过来说,如果一个类可以有几个实例共存,那么就没有表要使...

2014-07-10 22:10:03 167

原创 工厂模式

一、什么是工厂模式      工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将那个类实例化,不必事先知道每次要实例化那个类。工厂模式有一下几种形态:     ①简单工厂模式:又称为静态工厂方法模式,是不同的工厂方法模式的一个特殊实现。在简单工厂模式中,一个工厂类处于对产品类实例化的中心位置上,它知道每一个产品,他决定那个产品类应当被实例化。这个模式的优点是允许客户端相...

2014-07-10 21:08:12 182

原创 编程模式---迪米特法则(LoD)

     迪米特法则又叫最少知识原则,就是说一个对象应当对其他对象有尽可能少的了解。     下面看看迪米特法则的其他表述方法:①只与你直接的朋友通信;②不要与陌生人说话;③每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。一、狭义迪米特法则     如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一...

2014-07-08 23:06:07 277

原创 编程模式---合成/聚合复用原则(CARP)

     合成/聚合复用原则经常又叫做合成复用原则。合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。简短的表述是:要尽量使用合成/聚合,尽量不适用集成。一、合成和聚合的区别     合成和聚合均是关联关系的特殊种类。聚合用来表示“拥有”关系或者整体与部分的关系;而合成则用来表示一种强的多的“拥有”关...

2014-07-07 00:12:34 272

原创 编程模式---接口隔离原则(ISP)

     接口隔离原则讲的是:使用多个专门的接口比使用单一的总接口要好。换言之,从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小的接口上的。一、什么是接口隔离原则   人们常说的“接口”往往有两种含义,一种是狭义上的,指的是Java语言中的有严格定义的interface结构;另一种则是广义上的,指的是一个类型所具有的方法特征的集合,但这仅是一种逻辑上的抽象。对于这两种...

2014-07-06 18:31:22 245

空空如也

空空如也

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

TA关注的人

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