- 博客(75)
- 收藏
- 关注
翻译 Maven的构建生命周期
构建生命周期构建生命周期基础Maven 提倡了一个构建生命周期的中心概念。这意味着一个项目的构建过程和发布都是已经被清楚的。对于那些构建项目的人来说,这意味着只需要学习少许命令就能编译大多数maven项目,并且从pom中可以拿到所有他们需要的东西。这里有三个内置的构建周期: default, clean 和 site。 default 用于处理你项目的发布; clean 用于清...
2018-05-10 11:38:33
472
翻译 Maven Setting配置
Maven配置Maven的配置有三个等级项目(Project)安装(Installation)用户(User)这种区分是足够明显的,项目配置的信息只会作用于该项目,而其他两个都会作用于当前的环境项目注意:安装自带的配置和用户自定义的配置不能够用来添加项目共享的信息,比如说 和 因此呢,你的公司应该有一个 parent(父级)可继承的pom.xml文件下面我们来详细...
2018-05-10 11:34:15
705
翻译 Maven 菜谱
Maven食谱如果你是一个使用Maven的新手,建议你从到到位按顺序阅读本食谱,如果你是一个老油条,你可以把这份文档当成食谱,按需翻阅。章节Maven是什么?Maven如何优化开发流程?如何设置Maven?如何创建第一个Maven项目?如何编译项目源码?如何编译测试代码并且运行单元测试?如何创建JAR并且安装到本地仓库什么是SNAPSHOP版本?如何使用插件?...
2018-05-10 11:31:10
338
翻译 五分钟上手maven
五分钟上手创建项目项目文件夹名为 artifactId参数指定的值# 非交互模式创建mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false# 交互模...
2018-05-10 11:29:47
363
翻译 Maven功能
功能基于最佳实践思想的简单的项目配置 - 只要几秒就能初始化一个项目一致性用法 - 对于新接手的人来说,不会消耗太多时间优秀的依赖管理,包括自动更新,依赖闭包(传递性依赖)一个大型并且持续发展,包含了众多开箱即用的库和源文件的仓库,并且对于一些开源项目做到了实时跟进最新版本可拓展插件,使用Java或其他脚本语言可轻松构建自己插件能够快速获取新特性,通过少许配置或没有与Ant共存...
2018-05-10 11:29:01
238
翻译 Maven简介
简介Apache Maven 是一个项目管理的工具。基于 项目对象模型POM(project object model)思想。 它可以帮助你管理项目的编译,文档,报告等实施过程。maven 是依地语的一个单词,意思是技术收集者。这个项目的启动是一次尝试,希望能够简化印度首都雅加达当时的一个涡轮工程项目的构建过程。当时我们已经有了好几个用Ant构建项目,每一个项目的Ant构建文件都只是轻微的...
2018-05-10 11:27:02
565
转载 Session攻击手段(会话劫持/固定)及其安全防御措施
原文地址:http://blog.csdn.net/h_mxc/article/details/50542038一、 概述 对于Web应用程序来说,加强安全性的第一条原则就是——不要信任来自客户端的数据,一定要进行数据验证以及过滤才能在程序中使用,进而保存到数据层。然而,由于Http的无状态性,为了维持来自同一个用户的不同请求之间的状态,客户端必须发送一个唯
2016-09-06 12:11:34
4375
转载 TCP/IP协议中分包与重组原理介绍
TCP/IP协议中分包与重组原理介绍引言分片是分组交换的思想体现,也是IP协议解决的两个主要问题之一。在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题。但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素。我们将在这篇小论文中讨论IP分片的原因、原理、实现以及引起的安全问题。一、什么是IP分片
2016-08-09 21:03:01
1804
原创 Logging separation
The problem: Logging Separation这一章节中,我们将讨论有关为多个运行在同一个web容器或EJB容器的应用提供分离的日志环境。在分离的日志环境中,每个应用看到的都是不同的日志环境,所以应用之间的配置不会相互干扰。更为专业的术语就是,每一个web-application都有一个独立的LoggerContext副本。在Logback中,每一个logger对象都是
2016-08-03 01:05:53
972
原创 Mapped Diagnostic Context (MDC)
logback的其中一设计目的就是方便监控和调试复杂的分布式应用。在现实生活中,分布式应用需要同时处理很多客户端请求。一种典型的多线程实现,不同的线程处理不同的客户端。为了区分不同客户端产生的日志输出,一种可行但不推荐的方法是为每一个客户端生成一个logger实例。这种做法会随着客户端的增多可能导致资源殆尽。一种更机智的技巧是为每一个客户端独立标记 log request(Looging Di
2016-07-31 16:21:38
2771
原创 阅读Logback文档笔记--Logback的filter配置
在前面我们说过 basic selection rule,这一节我们来讲另一个附加的过滤方法。Logback filters 可以通过串链方式组成一个复杂过滤规则,类似 linux 系统的 iptables 防火墙。在Logback-classic中提供两个类型的 filters , 一种是 regular filters , 另一种是 turbo filter。regul
2016-07-30 13:31:40
10111
原创 阅读Logback文档笔记--Logback的Layout配置
什么是 layout ?Layout 是Logback中的组件,负责将到来的event转换成 String。Layout 接口中的 doLayout(E event)方法接受一个模板类 event 参数,并返回 String 字符串。下面是 Layout 接口概要public interface Layout String doLayout(E eve
2016-07-27 00:03:17
12234
1
原创 阅读Logback文档笔记--Logback的Encoder配置
Encoder负责将logging event转换成byte array并将字节数组写入到一个OutputStream。在0.9.19版本之前,大多数appender依赖layout来将Logging event转回成字符串string ,然后用java.io.Writer写出。在之前的版本中,用户会在FileAppender中内建PatternLayout,但从0.9.19之后,FileAppe
2016-07-22 15:51:16
1322
原创 阅读Logback文档笔记--Logback的Appender配置
Logback将执行日志事件输出的组件称为Appender,实现的Appender必须继承 ch.qos.logback.core.Appender 接口接口如下:package ch.qos.logback.core;import ch.qos.logback.core.spi.ContextAware;import ch.qos.logback.core.spi.F
2016-07-20 21:42:05
15914
1
原创 阅读Logback文档笔记--Logback的Configuration配置
要在项目中引入日志,需要一定的代价,据统计日志代码量将会占整个代码量的4%左右。因此我们需要一个工具管理这些日志声明。对于Log4j.properties可以通过以下网址转化成logback.xmlhttp://logback.qos.ch/translator/Logback如何查找配置文件:在classpath中查找logback.groovy如果不存在,则在cla
2016-07-13 13:01:57
7086
原创 阅读Logback文档笔记--LogBack架构
Logger, Appenders and LayoutsLogback构建在三个主要的类上面:Logger, Appender and Layouts三个组件决定了日志的类型,格式,以及输出目的地Logger类定义在loback-classic模块中, Appender 跟 Layout接口则定义在logback-core中,作为一个通用的模块,loback-core中没有Logge
2016-07-13 13:01:11
981
原创 阅读Logback文档笔记--Logback简介
什么是LogBack?LogBack是一个日志框架,可以视为Log4j的升级版。LogBack分为三个模块logback-core.jar :作为一下两个模块的基层logback-classic.jar :实现SLF4J API,使用后也可以轻松切换其他日志框架。如 log4j 或 java.util.logginglogback-access.jar :整合servlet
2016-07-13 12:59:16
731
原创 maven pom文件解析
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 org.wzl SpringmvcDataMap snapshot:快照 alp
2016-07-13 12:57:51
456
原创 maven仓库相关配置
默认情况下,Maven的本地资源库默认为 .m2 目录文件夹:Unix/Mac OS X – ~/.m2Windows – C:\Documents and Settings\{your-username}\.m21、修改本地仓库:{M2_HOME}\conf\setting.xml2、添加镜像仓库:{M2
2016-07-13 12:57:20
407
原创 maven概念
什么是maven?Maven是一个基于项目对象模型 (POM)的项目管理和综合工具。maven能干什么?Maven提供了开发人员构建一个完整的生命周期框架。概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。maven仓库的概念?maven本地仓库:本地存储依赖,
2016-07-13 12:56:38
505
转载 Sitemesh 3 的使用及配置
1 . Sitemesh 3 简介Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术。参考:百度百科,相关类似技术:Apache Tiles。官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Home 。2 . Sitemesh 3
2016-04-29 09:56:14
431
原创 Nginx的安装,启动,停止,日志分割,从容停止,平滑升级
Nginx依赖:1、安装:gcc gcc-c++编译器12yum install -y gccyum install -y gcc-c++2、安装:pcre pcre-devel库1yum install -y pcre pcre-devel
2016-03-21 22:11:58
628
原创 适配器模式(9)
适配器模式定义:将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容。现实中的例子:电源适配器(充电器)。由于设备的不同,输入电流电压有不同的标准,但是我国的家用电压是220V标准,所以需要经过电源适配器对电流电压进行转换才能安全充电。适配器模式有两种形式:对象适配器:适配器实现(implement)目标接口,且适配器类中有被适配对象的引
2016-03-16 19:54:46
686
原创 外观模式(8)
外观模式:提供一个统一的接口,来访问子系统中的一群功能相关接口。外观模式定义了一个高级接口,让子系统更容易使用。类图如下:例子:一个家庭影院系统,当点击准备按钮,投影仪,音响,灯光就会打开;当点击开始播放,灯光系统就会关闭;当点击暂停,灯光系统就会打开;当点击关闭,投影仪,音响,幕布就会关闭,灯光点亮。诸如此类,通过提供一个高层接口,来实现子系统的一群相关接
2016-03-15 19:00:34
416
原创 模板模式(7)
模板模式定义:封装了一个算法步骤,并允许子类为一个或多个步骤方法提供实现。模板模式可以使子类再不改变算法结构的情况下,重新定义算法中的某些步骤。类图如下:说明:模板模式就好比我们生活中的做菜,做菜的步骤是一定的:准备食材-》烹饪-》加佐料-》上桌,我们将做菜通用步骤抽象成父类,父类有一个统筹模板算法步骤的函数以及多个步骤方法,具体做什么菜则是继承
2016-03-15 17:46:09
560
原创 工厂模式(6)
工厂模式的定义:在现实生活中,如同工厂生产产品,3D打印机打印模型一样。对象的创建通过工厂类来产生。根据实现的模式不同,工厂模式又分为3中:简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类抽象工厂模式:定义了一个接口用于创建相关或有依赖
2016-03-11 21:31:07
456
原创 命令模式(5)
命令模式定义:将请求,命令,动作等封装成对象,这样可以让项目使用这些对象来参数化其他对象。是的命令的请求者和执行者解耦。以下是一个遥控器的例子,如果按照传统OO思想,我们一般会直接让遥控器去调用硬件提供的API,但是这种写法,会导致遥控器与特定的硬件API强耦合。当我们的需要接入新的设备,修改按钮所绑定硬件命令,这时候就会相当不便。我们有个准则是,原来已经测试好的代码,尽量不去
2016-03-11 13:06:23
406
原创 单例模式(4)
单例模式的定义:类只有一个全局对象,构造函数私有化,提供一个对外获取单例对象的方法。对于打印机,数据库连接池这些对象,全局应该仅有一个对象对应着一个实体。代码示例如下:12345678910111213141516
2016-03-10 13:33:39
367
原创 装饰者模式(3)
装饰者模式定义:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性。现实中,装饰者模式就像一个快递。我们购买的东西,需要经过一层一层的包裹,确保稳妥之后才被寄出。如果按照传统的面向对象,每包裹一层就需要设计一个新类,这将会导致类爆炸。还有一个例子就是,我们所喝的咖啡,假设有N种调料,M中原始咖啡豆,它们组合成的咖啡无数种,很明显,我们不可能为每种可能都建立一个类。
2016-03-10 10:46:07
412
原创 观察者模式
观察者模式定义:对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Oberver变化。观察者模式就像小时候的订牛奶业务奶站:相当于Subject,负责订奶家庭的登记,派送,退订工作用户:相当于Oberver,订奶家庭Subject:负责用户的登记注册,移除和通知Ob
2016-03-09 12:22:14
386
原创 策略模式(1)
策略模式定义:分别封装行为接口,实现算法族,超类里放行为接口的对象,在子类里具体设定行为对象。原则就是,分离变化部分,封装接口,基于接口编程各种功能。此模式让行为算法的变化独立于算法的使用者。 策略模式注意点:分析项目中的变化部分与不变部分多用组合少用继承;用行为类组合,而不是行为的继承。更有弹性案例1:在三国杀里面,我们每个
2016-03-09 09:16:04
654
原创 Socket笔记
Socket又称套接字,应用程序通常通过“套接字”向网络发出请求或者应答网络请求。在Java中,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功后,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的对话。对于一个网络连接来说,套接字是平等的,并没有差别,不应为
2016-03-03 13:17:01
574
原创 Lucene笔记---全文检索引擎工具包
Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开源的全文检索引擎工具包Lucene的数学模型:倒排表(反向索引:从词元到文档的索引)Lucene的文件结构:索引:一个索引放在一个文件夹中段:一个索引可以有很多段,段与段之间是独立的,添加新的文档可能产生新段,不同的段可以合并成新段文档:文档是创建索引的基本单位,不同文档保存在不同段中,一个段可以包含多个文档域:一个文档可以包含不同类型的信息,可以拆分开索引词元:词是索引的最小单位,是经过词法分析和语言处理后的数
2016-02-23 23:19:32
658
原创 操作系统笔记---虚拟存储器
虚拟存储技术:从逻辑层面上实现对内存容量的扩充,改善系统性能常规存储器管理方式特征:一次性驻留性虚拟存储器的工作原理:给予局部性原理可知,应用程序在运行之前无需全部载入,而只需要载入少数页面或段就可运行,其余部分暂留外存。如果出现缺页(段),就发出缺页(段)请求,此时系统再讲请求页调入内存虚拟存储器
2015-12-07 16:51:39
993
1
原创 操作系统笔记---存储器管理
存储器的多层结构:寄存器高速缓存主存储器磁盘缓存固定磁盘可移动存储介质程序的装入与链接:编译:链接:静态链接方式:装入时动态链接:运行时动态链接:装入:绝对装入方式:仅适合运行在单道程序环境可重定位装入方式:程序中的其他地址是相对于起始地址
2015-12-07 16:50:40
722
原创 操作系统笔记---处理机调度与死锁
处理机调度与死锁在多道程序环境下,内存中存在着多个进程,起数目往往多余处理机数目。这就要求系统能按照某种算法,动态地将处理机分配给处于就绪状态的一个进程,使之执行。分配处理机的任务是由处理机调度程序完成的。对于大型系统运行时的性能,如系统吞吐量,资源利用率,作业周转时间或响应的及时性等,在很大程度上都去决议处理机调度性能的好坏。处理机调度算法:根据处理机分配策略所规定的处理机分配算
2015-12-07 16:49:51
966
原创 操作系统笔记---进程的描述与控制
进程:系统资源分配和独立运行的基本单位 在20世纪60年代中期来说,但20世纪90年代后,线程才是作为调度和分派的基本单位把资源调度与分配和拥有资源两个属性分开,进程作为分配资源的基本单位,线程作为调度分派的基本单位前趋图概念:一个有向无循环图直接前驱直接后继程序执行:顺序执行:特征顺序性封闭性(独占全部资
2015-12-07 16:46:38
1275
原创 操作系统笔记---操作系统引论
操作系统目标:方便性有效性可拓展性开放性操作系统的作用:OS作为用户与计算机硬件系统之间的接口OS作为计算机系统资源的管理者OS实现了对计算机资源的抽象操作系统的发展过程:单道批处理系统多道批处理系统(产生背景:提高资源利用率,系统吞吐量)分时系统(产生背景:人机
2015-12-07 16:45:46
558
原创 软件工程实现阶段
通常把编码和测试统称为实现编码:选择程序设计语言选择标准:系统用户要求可以使用的编译程序可以得到的软件工具工程规模程序员的只是软件可移植性要求软件的应用领域编码风格应该遵循的标准:程序内部的文档:包括恰当的标识符,适当的注解和程序的视觉组织(通常在每个
2015-12-07 14:16:17
3195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人