- 博客(209)
- 资源 (5)
- 收藏
- 关注
翻译 【GIS】(二)——Windows平台MapServer (MS4W)安装
本篇文章将学习Windows上如何安装MapServer,即如何安装MS4W。硬件要求 上一篇文章我们已经了解到MapServer可以运行在Linux,Windows,Mac OS X等不同的操作系统上。软件要求一个配置好的Web(HTTP)服务器,比如Apache或者Microsoft的IIS,在这个服务器上安装MapServer。 对于Windows操作系统,如果你电商上没有安装w
2016-12-02 14:30:52
6330
2
翻译 【GIS】(一)——MapServer的"自我介绍"
概览MapServer是一个用来在网上展现动态空间地图的流行的开源项目。它具有以下特点:支持显示和查询数以百计的栅格,矢量和数据库格式能够运行在多种不同的系统上(Windows, Linux, Mac OS X等)对流行的脚本语言和开发环境(PHP, Python, Perl, Ruby, Java, .NET))提供支持on-the-fly 投影高质量绘制模型完全可定制的应用输出许多
2016-11-30 23:55:10
4065
1
原创 【重构的故事】(一):在哪里封装验证方法?
故事背景 组长让我修改一个很简单的bug——在用户使用API添加地址的时候,后台验证一下地址信息。比如:地址名称,国家名称,街道名称不能为空…… 之前是在API的Controller中写了一部分验证逻辑的,因为没有写全面,导致了bug的产生。解决方案办法:直接在API的Controller中的validate方法中修改。 【优点】:直接,快速,可以很快把bug修改完。 【
2016-11-29 23:59:18
502
2
原创 【任务调度】:Quartz也有“春天”
之前,简单地浏览过Quartz的API(http://www.quartz-scheduler.org/documentation/quartz-2.2.x/quick-start.html),它告诉我们如何配置和使用Quartz。但是,在实际开发中我们的项目大多使用了Spring。那么这二者能否很好的结合呢?实际上,Spring框架已经对Quartz提供了很好的支持。这篇文章,我们将以实际的Dem
2016-11-28 17:19:01
551
7
原创 【测试学习】(一)——JUnit测试框架和组合模式
概念测试用例:任何包含测试代码的类(需要继承TestCase类)设计模式Composite模式(组合模式)TestCase相当于叶子节点。TestSuite是非叶子节点,通过addTest方法,它可以包含自身,也可以包含TestCase。原因是addTest方法的参数是Test类型,而TestSuite和TestCase都实现了Test接口。重要的类Test:测试接口 TestSuite:测试套件
2016-11-09 13:37:11
554
2
原创 【工具篇】——利用EditPlus进行Json数据格式化
从接口返回的数据基本都是json格式的数据。之前我要查看数据的内容,为了方便我阅读,我会直接复制这段数据到在线JSON校验格式化工具中进行格式化和校验。但是没网的时候,就不能靠它了。 而EditPlus是我们程序员经常用的一个编辑器。它可以集成好多插件,从而使自己功能强大。 EditPlus可以集成JSON插件,在本地就可以格式化JSON数据,很方便。 下面看看怎么配置 (1
2016-10-27 23:05:27
21865
9
原创 【Zookeeper学习】(三):Curator与Fluent编程风格下(对建造者模式的理解)
上一篇文章中举的例子,关于Fluent编程风格的实现,其实并不太符合我本来的猜想。这篇想着再举一个我觉得比较合适的例子。 使用Curator创建Zookeeper会话时,有两种方式。方式一:调用CuratorFrameworkFactory的静态方法 newClient()CuratorFramework client=CuratorFrameworkFactory.newClient(……);方
2016-10-26 13:34:13
1784
5
原创 【Zookeeper学习】(二):Curator与Fluent编程风格
先来说说这两者是什么:CuratorCurator是Zookeeper的开源客户端框架。上一节中我们了解了在Java中使用Zookeeper的基本API。由于Watcher是一次性的,所以使用基本的API时,需要我们自己反复注册API。而框架就是工具,用来简化我们程序员的开发。Curator就是简化我们在Java中使用Zookeeper的框架。Fluent编程风格先来看个例子:ConcurrentM
2016-10-25 23:45:26
1727
5
原创 【安全】——程序员应该具备的安全意识(一)
在这篇文章中将分享程序员在编程过程中应了解的安全小常识。来源 http://securitycompass.com/training/free/course-demos/SQL InjectionSQL Injection的“入侵场所”1.Web Form 2.URL Parameter 3.Web Service以URL Parameter为例假如界面上需要用户注册,注册时要选择所在国家和城
2016-09-30 23:57:25
1982
1
原创 【Java基础】——int与Integer区别快来瞅瞅
当面试官问你int与Integer的区别的时候,你会很轻松地说出int是Java中的基本数据类型,而Integer是引用类型。当它们作为类的成员变量时,前者默认值为0,后者默认值为null。除次之外呢,就没话可说了。下面我们详细了解一下。赋值的时候我们有三种方式来表示1这个整数://1.值类型基本赋值方式int data1=1;//2.将值类型赋值给一个引用类型(对象类型)Integer d
2016-09-06 18:59:51
905
2
原创 【数据库】(二)——存储过程的本质
如果说视图是对SELECT这样的SQL语句封装,那么存储过程就是一条或多条SQL语句的集合。这些SQL语句,可能包括SELECT,UPDATE或是INSERT,DELETE。通常这些SQL语句的集合代表一个完整的操作,同时这个SQL语句可能包含着某些逻辑(类似于if……else),也就是说有些语句可能执行,可能不执行。为什么要使用?如果不使用存储过程,在多个需要这一完整操作的处理中,或应用中,我们
2016-09-03 17:55:29
922
4
原创 【数据库】(一)——视图的本质
定义 视图为虚拟的表。 它本身不包含数据。而是根据需要检索数据的查询。 视图提供了对SELECT语句的封装。 这样一说,很难理解。咱们举个例子。SELECT cust_name,cust_contactFROM customers,orders,orderitemsWHERE customers.cust_id=orders.cust_id AND orderitems
2016-09-03 17:33:35
4069
6
原创 【分布式中的问题】(一)——事务
事务基本内容 基本属性:ACID 隔离级别 传播特性本地事务 直接用begin,commit,rollback就可以分布式事务实现方式两阶段提交协议 两个角色:协调者和参与者协调者:负责调度参与者的行为,并最终决定参与者是有要把事务真正提交。(统一调度所有分布式节点的执行逻辑。),在具体实现当中常称为全局事务管理器。 优点: 原理简单,实现方便缺点: 同步阻塞
2016-08-31 21:39:15
697
3
原创 【Nginx实战】(一)——Nginx要点内容总结
解决问题 单台服务器已经无法承担大量用户的并发访问,必须采用多台服务器协同工作,以提高计算机系统的处理能力和计算强度(集群),满足当前业务量的需求。如何完成同样功能的多个网络设备之间实现合理的业务量分配——负载均衡。负载均衡策略/算法 轮询:依次分发到每台应用服务器上,所以每台处理请求数相同 加权轮询:按照配置的权重将请求分发,高性能的服务器分配更多请求。 随机:随机分配
2016-08-31 21:14:28
1432
3
转载 【Solr】——Search On Lucene Replication
项目中使用Solr的背景我们以电子商务网站为例来说。1.简单的商品分类导航无法满足用户快速检索到想要的商品的需求。 对于电子商务网站而言,随着业务的扩张,商品种类越来越繁多、功能也越来越多,于是乎站点越来越大、越来复杂。简单的商品分类导航(标签导航)方式已经无法满足用户快速获取想要产品的基本需求。于是乎基本上所有的电子商务网站都提供了站内搜索的功能。站内搜索的快慢直接决定了用户对此网站的用户体验
2016-08-20 20:25:18
595
1
原创 【Java并发编程】(二)——volatile
要编写正确的并发程序,关键问题在于: 在访问共享的可变状态时需要进行正确管理。我们希望: 1.应防止一个线程正在使用对象状态时,而另一个线程在同时修改该状态;——原子性 、互斥性(临界区) 2.应确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。——内存可见性volatile稍弱(轻量级)的同步机制,是保证内存可见性的一种手段。语义1.当一个变量定义为一个volati
2016-08-19 21:17:10
526
2
原创 【Java并发编程】(一)——Java内存模型
定义: Java内存模型是用来定义变量的访问规则。即在虚拟机中将变量存储到内存和从内存中取出变量的底层细节。 简而言之,Java内存模型是对特定内存的读写访问的过程抽象。 ——《深入理解Java虚拟机》变量And特定内存?1.这里的变量和Java语言中的变量不相同。 这里的变量指:实例字段,静态字段和构成数组对象的元素
2016-08-19 17:25:27
482
2
原创 【SSO】——使用CAS实现二级域名不同的网站的单点登录(二)
回顾上一篇文章中,实现了二级域名相同的网站的单点登录的效果。但是利用上篇文章的方式不能满足诸如:www.blog.com和www.news.com这样二级域名不同的网站的单点登录。问题出在哪呢?就是当访问一个网站把Cookie存放到某个地方之后,再访问另一个网站没有权限拿到这个Cookie。为什么没有权限拿到呢?因为Cookie生成的时候设置的Domain和Path的限制。这两个属性决定了在允
2016-07-18 15:03:24
7614
3
原创 【SSO】——使用Cookies+Filter实现单点登录效果(一)
单点登录 用户登录一次系统,就可以直接访问其他相互信任的系统。实现思路假设www.mail.tgb.com和www.bbs.tgb.com是两个相互信任的网站。我们希望登录其中一个网站成功之后,另一个网站就可以免登录。思路基本想法——当用户登录一个网站时,把用户信息保存到一个地方。当用户访问另一个网站时,网站先看看这个地方有没有用户信息,再决定让用户先登录还是直接进入网站。“地方”是哪
2016-07-17 18:51:31
4381
3
原创 【JVM】(一):Java内存模型
回顾在学习Java基础的时候,程序的一次执行过程: 程序运行时,被加载到了内存区域,操作系统找到程序代码中的main方法开始执行,在执行过程中从不同的内存区域中为对象或变量申请内存空间。堆Heap:new ()出来的实例对象,数组 栈Stack:局部变量 数据区:静态变量、字符串常量 代码区:存放代码简单对比之前的堆——Java堆 之前的栈——Java虚拟机栈中的局部变量表 之前的数
2016-07-16 16:52:17
714
4
原创 【Mule ESB】:对MuleESB的简单认识
是什么 Mule ESB是一个基于Java的轻量级消息框架和整合平台。消息框架: 把不同的系统整合一起,需要一个系统能将数据发送到另一个系统。同时另一个系统能读取发送来的数据。消息框架能够帮助我们开发人员完成发送,转换,读取数据的工作。解决的问题Mule ESB能处理各种协议发送来的消息,以及各种格式的消息。与传统的ESB区别: 在需要的时候才让应用于总线建立连接。 消除了
2016-07-16 12:00:56
727
2
原创 CORBA、 EJB(JavaEE规范)、WebService比较
CORBA和EJB1.工业标准: 都是。很多厂商共同遵守。2.提供的基本支撑: (1)构件化: CORBA提供半自动的构件运行环境,开发人员除了开发构件还要开发POA(相当于Skeleton) EJB:由容器提供构件运行环境。自动化。 (2)互操作 都是基于Stub/Skeleton模型。 CORBA的互操作优势特别突出,除了跨平台,还跨语言。 EJB
2016-07-15 11:06:44
1817
2
原创 【中间件】(三):CORBA规范
CORBA规范是一种工业标准,之后JavaEE的规范也参考了CORBA规范,这篇文章,我们看看CORBA规范都定义了哪些内容。概览 CORBA :通用对象请求代理体系结构点击查看大图概念框架OMA OMA用于描述基于CORBA的系统的基本结构和构件特征。其中参考模型定义了基本结构。对象模型定义了系统组成单元——构件的基本特征。CORBA程序开发开发中要注意三类问题: 平台的
2016-06-28 09:52:29
2271
2
原创 【中间件】(二):学习中间件不得不了解的基础知识
在阅读本文之前,先给大家提几个问题: 为什么会产生中间件? 中间件是什么? 分布式软件开发中又哪些共性问题? ……概览 先来整体了解一下都有哪些内容。点击查看大图产生原因 随着分布式软件开发的规模原来越大,复杂度越来越高,软件开发的周期长,可靠性保证难的问题没有根本缓解。 同时,还面临着互操作性,数据交换,分布性等问题。解决问题的基本思路:
2016-06-26 19:14:15
4465
2
原创 【WebService框架-CXF】——CXF+Spring+Struts+自定义拦截器构建WebService客户端
在上一篇博客中我们总结了在SSH架构的服务端项目中添加Web Service层,并发布服务。这篇文章中,我们将介绍如何结合Spring构建WebService的客户端。步骤1.新建Java Web Project 2.引入Spring,Struts,CXF的相关Jar包。 3.通过java2wsdl命令生成客户端代理 链接地址为http://localhost:8080/CXF_Spri
2016-06-20 21:00:26
822
2
原创 【WebService框架-CXF】——CXF+Spring+自定义拦截器构建WebService服务端
在传统的SSH项目中,我们可以添加一层Web Service。这样就可以允许任何平台,任何语言编写的程序来调用这些对外发布的服务。 在传统的SSH项目中添加WebService层的关键步骤为:如何把WebService的类添加到Spring容器中进行管理,如何发布服务。即如何在applicationContext.xml中进行配置。步骤1.新建Java Web Project,引入C
2016-06-20 19:50:47
1725
2
原创 【WebService框架-CXF】——CXF拦截器
背景 当一个服务发布之后,只要有服务地址,我们就可以建立客户端对服务进行调用。如果服务的提供者想要对可以调用服务的客户端进行限制,如:只有某些客户可以调用此服务。这时候就会用到拦截器,来进行权限控制。 明白了拦截器的应用场景,我们看看CXF的拦截器怎么用。IN&OUT拦截器 从图中我们可以总结出,只要从一端发出消息时要进行拦截,就要使用OUT拦截器。如果要对接收的消息进行拦截
2016-06-20 18:05:50
1084
2
原创 【WebService框架-CXF】——CXF对Map等无法自动转化的类型的处理
CXF作为Web Service的实现框架,在消息传递过程中需要把参数或返回值当中某种数据类型的数据转化为XML格式的数据。在解析数据过程中又需要把XML格式的数据转化回原来的某种数据类型的数据。 但是CXF只支持String,基本数据类型,JavaBean类型,List集合,数组的转化,不支持Map及非JavaBean的类型的转换。 那么,当参数或返回值是Map类型,怎么办呢?
2016-06-15 00:04:42
2410
1
原创 【WebService框架-CXF】——CXF入门实例
这篇文章主要介绍如何编写WebService的服务端和客户端准备工作 下载apache-cxf-2.4.0的jar包 将bin目录配置到环境变量中,如:E:\Workspaces\MyEclipse 10\CXF\apache-cxf-2.4.0\bin编写服务端编写服务端 1. New –》 Java Project 备注:如果使用apache-cxf-2.4.0,
2016-06-13 22:55:43
4366
1
原创 【WebService框架-CXF】——WebService和CXF
在接下来的几篇博客中将对CXF的基础知识和简单应用进行总结。下面列出了要总结的内容。本篇文章集中介绍CXF的基础知识。CXF博客总结目录WebService和CXF基础知识 CXF入门实例(编写客户端和服务端) CXF对Map等无法自动转化的类型的处理 CXF添加普通拦截器和自定义拦截器 CXF+Spring+自定义拦截器构建WebService服务端 CXF+Spring+Struts
2016-06-12 09:21:24
2325
原创 【GIT】git提交和解决冲突小经验
背景 虽然看过了公司关于git的培训视频。听着挺明白的,但是实际操作,解决冲突时就是另外一回事。这篇文章先来简单介绍一下git不同于cvs和svn的一些概念,再分享一下自己在项目中和同事修改同一文件遇到冲突时的解决方案。git中的概念 git是开源的分布式版本控制系统。git的本地仓库(自己电脑上的仓库)具有和远程仓库(服务器上的仓库)一样完整的信息。所以它的地位可以
2016-05-26 21:41:24
6359
4
原创 【POI】——获得单元格的值,并转化成字符串
本篇文章分享一些在做导入导出EXCEL功能时用到的工具类的一些代码。/** * @param cell * @return */ public static String getStringValueFromCell(Cell cell) { SimpleDateFormat sFormat = new SimpleDateFormat("MM
2016-05-26 21:34:32
18250
5
原创 【日志框架】——通过log4j.properties文件学习log4j
先来直观看看log4j.properties长什么样子。我从中摘了两块内容:logger配置log4j.rootLogger=ERROR, stdout, filelog4j.logger.com.tgb=INFO, filelog4j.logger.org=INFO, filelog4j.logger.org.hibernate=INFO, fileappender配置
2016-05-26 19:26:30
823
3
原创 【中间件】(一):中间件原来和分布式有关系……
整体概览概念 分布式软件可理解为运行在网络环境中的软件。(好宏观啊,haha~~)开发模型C/S概念 即Client/Server。 如果一个系统两个组成部分存在如下关系: 1.其中一方提出对信息或服务的请求(客户机); 2.另一方提供这种信息或服务(服务器); 这种结构,可看作是客户机/服务器计算模型。两层 服务器层:数据层。数据库服务器,上面安装D
2016-05-14 12:21:36
2900
5
原创 【GIT】关于git的故事
因为项目比较急,入职第一天就直接开始搭建项目开发环境。这个项目用的版本管理工具是git,之前我做项目用的都是SVN。对Git并不陌生,只是没有真正实践过。 下面就让小编娓娓道来入职第一天关于git的故事。如此多“git”,你晕了吗? 之前的时候,听说过git,github,来公司第一天又接触了一个词gitlab,你们知道它们的联系和区别吗?Git - 版本控制工具 Git
2016-04-29 15:25:48
1055
8
原创 【EJB系列】(六)——EJB的事务管理
EJB的事务管理建立在JTA事务基础之上,应用服务器(如:JBOSS)会负责处理事务管理的底层细节,而EJB开发者只要决定事务边界即可。下面将从特性,隔离级别,传播特性来总结有关事务的内容。特性 ACID原子性:不可再分。 一致性:数据库始终处于一个正确的状态。 隔离性:并行事务之间互不干扰。 持久性:事务一旦提交,对数据的改变,将会持久化到数据库。隔离级别 当两个或者多个操作
2016-04-17 17:28:22
2059
6
原创 【EJB系列】(五)——EJB与WebService
什么是Web Service Web Service是一项基于XML的分布式实现技术。 以SOAP协议作为网络通信协议,以XML文档作为数据交换格式。 允许不同平台、不同语言的应用程序之间相互调用。综上,WebService 与编程语言无关,与平台无关,只要我们把应用程序发布成WebService方式的服务,只要权限允许,谁都可以调用。JavaEE对Web Service的支持
2016-04-17 16:10:14
1882
5
原创 【EJB系列】(四)——EJB基本内容总结
整体感知概念 EJB是Java当中编写业务逻辑的Bean,是分布式系统中的业务组件。分类SessionBean 学习这部分,可结合Spring的Singleton和Prototype。有状态的Bean,即在类内部保存了实例变量,针对不同客户端,需要new出不同的有状态的Bean来保存各自的状态。 对于SessionBean的调用包括本地调用,远程调用和Web Service方式调用。
2016-04-17 15:36:47
856
3
连接WIFI工具类
2015-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅