Java/J2EE开发
Soloman
1998年接触计算机编程,专业领域:嵌入式编程(VxWorks、QNX、Windows XP Embedded)、驱动开发、Windows应用程序开发、手机终端开发(WM、Android、BREW)。目前专注于管理工作。
接受技术书籍翻译、技术培训、项目开发等业务。
展开
-
Maven项目管理实战(一)--Console App
项目开发过程中组员对于Maven的使用仍然存在很多的问题和疑问,下面将根据一个实际例子对Maven如何管理项目做一个阐述。1. 项目目标由于本节是本系列的第一小节,我希望从基础开始描述,主要从一个Console Application开始由浅入深描述概念、步骤及其他工具使用中所需注意步骤。2. 准备工作2.1 下载文件Maven的工具下载地址请去:http://原创 2014-02-13 21:52:22 · 3323 阅读 · 0 评论 -
Maven项目管理实战(四)-pom.xml文件详解
我们先看一个简单的例子:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.原创 2014-02-21 07:55:31 · 2816 阅读 · 0 评论 -
老生常谈--关于J2EE开发中的字符编码
这几天发现团队中的几个新成员对于开发中的编码理解的不是很好,特意写这篇文章,帮助大家理解。首先,我们明确我们的目标在我们的工程中全部使用UTF-8编码。其次,我们需要了解开发中解除到的编码包括文件内容编码、请求参数编码、返回内容编码。文件内容编码首先我们讨论文件内容编码。jsp页面是我们MVC模式中的View,是展现到前台的页面,所以这个页面必须要支持多字节字符串(原创 2013-10-19 18:37:54 · 1055 阅读 · 0 评论 -
使用Maven管理项目(2)--创建Web App Project
上一篇我们讲了如何创建一个简单的控制台程序,下面我们需要进入我们日常开发的环节:Web App。新建工程这里我们仍然新建一个Maven Project;我们的Archetype中选择maven-archetype-webapp;对工程添加src/main/java、src/test/java、src/test/resources目录;在工程的Build Path中,将src原创 2013-10-08 22:18:10 · 1684 阅读 · 0 评论 -
使用Maven管理项目(1)--创建简单的Console App
Maven是Ant的替代工具,具体功能不多说,可以通过下面的具体案例理解使用。下载安装首先去http://maven.apache.org/下载maven。我的是mac,将其解压到~/tools/下面,目录结构是这样:接着给系统增加环境变量:$vi ~/.bash_profileM2_HOME=/Users/xxx/tools/apache-maven-3.原创 2013-09-26 22:33:22 · 3438 阅读 · 0 评论 -
Hibernate的几种关系映射(一)一对多映射之Set
Hibernate中的实体域模型和关系模型是通过映射文件关联起来的。而对象之间的关联关系可以通过在实体域模型中体现,然后在映射文件中描述,最后通过工具生成数据库表结构。生成表结构的过程应该是这样子的:定义原创 2013-07-07 19:26:35 · 1801 阅读 · 0 评论 -
如何使得MyEclipse支持Tomcat远程调试
以前的环境都是配置好的,可以直接使用,现在所有的环境都需要自己配置,所幸Tomcat 6以上现在配置简单了好多。需要设置JVM启动参数,在startup.sh文件末尾的地方修改为:set JPDA_TRANSPORT=dt_socketset JPDA_ADDRESS=8000set JPDA_SUSPEND=yexec "$PRGDIR"/"$EXECUTABLE" st原创 2013-05-25 00:28:44 · 1317 阅读 · 0 评论 -
客户端内嵌应用内支付功能--支付宝嵌入
我们的客户端由于需要使用应用内支付功能完成支付并购买虚拟物品的功能,所以选定了支付宝和银联两种方式,本文主要介绍支付宝方式。首先我们需要去申请一个支付宝账号,并通过公司账号实名认证。注意公司营业执照副本和法人的身份证信息都需要使用彩色扫描件;之后支付宝会往公司账号中打入一笔0.xx元的一笔款项用于验证这个账号能够完成交易,你需要在认证过程中输入这个金额;现在实名认证完成,我们需原创 2013-05-21 19:45:45 · 5306 阅读 · 1 评论 -
Maven项目管理实战(二)--pom.xml
本小节主要描述Maven生成的Project如何与MyEclipse集成、以及POM.xml文件结构。1. 与MyEclipse集成1.1 集成maven工程需要与MyEclipse集成的话首先需要配置工具。去Preference->MyEclipse->Maven4MyEclipse下面找到Installations,选择maven的安装路径即可。1.2 导入工程原创 2014-02-14 20:03:41 · 1890 阅读 · 0 评论 -
Maven项目管理实战(三)--创建Web App
好了,之前讲过了一个简单的Console App如何使用Maven进行管理,相信有了这些基础知识我们今天的课程更好理解。1. 创建工程大多数情况下我们的工程类型都是Java Web的,所以这里我们创建工程的时候略作修改:mvn archetype:create -DgroupId=com.freesoft.mvn-webapp -DartifactId=mvnwebapp原创 2014-02-17 22:40:47 · 1746 阅读 · 0 评论 -
Maven项目管理实战(五)--集成SSH
这一段是重头戏来了,如何集成SSH:1. 集成Struts21.1 修改pom.xml在dependencies中添加: org.freemarker freemarker 2.3.18 org.apache.struts struts2-core ${struts.version} 然后添加pr原创 2014-03-13 08:07:24 · 1591 阅读 · 0 评论 -
Java开源框架类库介绍(六)--SLF4J
SLF4J的全称是Simple Logging Facade 4 Java,从名称即可看出,这是一个针对Java的logging的一个简单的门面。原创 2014-05-14 23:09:34 · 1620 阅读 · 0 评论 -
Java开源框架类库介绍(三)--imgscalr
imgscalr是一个用来进行图片裁剪的工具类,官网参见:原创 2014-04-08 21:44:43 · 6528 阅读 · 0 评论 -
Java开源框架类库介绍(二)--FastJson
JSON数据格式是目前网络开发中除了XML之外的一种常用数据格式,原创 2014-04-07 20:37:50 · 1644 阅读 · 0 评论 -
Java开源框架类库介绍(一)--HttpComponents
我们在开发过程中经常会使用到HTTP协议作为我们数据交换的协议,本小节主要介绍一个开源的HTTP组件的使用。1. 环境配置1.1 下载安装HTTP Components是Apache的一个子项目,地址是:http://hc.apache.org/,主页中提供下载。使用过程及其简单,解压缩后直接将其lib目录下文件拷贝到classpath下即可。1.2 使用Maven原创 2014-04-04 22:49:28 · 5049 阅读 · 0 评论 -
Maven项目管理实战(六)--完成单元测试
JUnit是单元测试事实上的标准,所以我们这里仅介绍如何在Maven中使用JUnit进行单元测试。原创 2014-04-04 22:27:40 · 1822 阅读 · 0 评论 -
Java开源框架类库介绍(五)--log4j
Log4j其实更多的是一个工具,主要用于我们程序运行时需要记录日志的时候,原创 2014-05-03 20:49:44 · 1917 阅读 · 0 评论 -
Java开源框架类库介绍(四)--XStream
如果你的程序中使用到了XML或者JSON,那么你应该对这个库原创 2014-04-13 21:24:42 · 2010 阅读 · 0 评论 -
Struts2的JSON数据处理
好久没使用服务端的开发了,正好最近工作中遇到了类似的问题,所以重新捡起来看看:首先我们需要配置struts2的支持,并配置json插件。我们的测试页面是这个样子滴:<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServ原创 2013-05-15 23:45:14 · 1640 阅读 · 0 评论 -
Java与设计模式(06)--策略模式
定义策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。角色Strategy接口:定义了算法的形式;ConcreteStrategy:实现了具体算法;Context:对接口中的算法进行实用;Client:测试类;实际使用这里我们可以看个例子:原创 2013-03-27 23:23:12 · 889 阅读 · 0 评论 -
Java的一些高级特性(四)——集合
Java的集合类型主要有如下几种:Set/Queue/List/Set/Tree/Stack等。我们首先来看一个HashSet的用法:package com.freesoft.javaadvanced;import java.util.HashSet;import com.freesoft.testentity.Kalamata;import com.freeso翻译 2012-11-20 23:54:35 · 800 阅读 · 0 评论 -
Java的一些高级特性(三)——关于反射
首先我们来看一个使用Class类的例子。我们可以通过对象的getClass()方法得到一个Class对象,如下:package com.freesoft.javaadvanced;import com.freesoft.testentity.Olive;public class TestClassClass { public static void main(String[]翻译 2012-11-19 21:55:55 · 686 阅读 · 0 评论 -
Java的一些高级特性(一)——Java 7新特性
本文的主要来源是LYNDA.COM.JAVA.ADVANCED.TRAINING,前面我会沿着video的内容来,后续我可能会加入一些别的内容。这一小节我们看看Java 7的一些新特性(之前由于Android开发和J2EE开发大部分都是使用Java 5/6,直到今天才有机会学习啊)。在switch...case语句中使用String,貌似这个是从微软学来的:pack翻译 2012-11-16 22:28:34 · 1229 阅读 · 0 评论 -
Java的一些高级特性(三)——类部分
首先我们来看看成员类。Member Class指的是这个class是作为另一个类的成员(或者称之为属性)存在的,例如代码:package com.freesoft.java7newfeature;public class TestClass { public static void main(String[] args) { TestClass t = new TestClass(翻译 2012-11-18 23:01:08 · 939 阅读 · 0 评论 -
Java的一些高级特性(二)——初始化和赋值部分
这一小节我们主要讲解和初始化、赋值等相关的内容。首先我们来看看静态代码块:我们使用了一个Olive类存放数据:package com.freesoft.testentity;public class Olive { public static final long BLACK = 0x000000; private String name; private long翻译 2012-11-18 20:02:52 · 2129 阅读 · 0 评论 -
google custom search使用(三)
下面我们来看一个实际案例:首先我们建立一个servlet,代码如下:搜索结果的图片类定义public class SearchResultImage {// "contextLink": "http://zh.wikipedia.org/wiki/%E8%8A%B1",// "height": 188,// "width": 250,// "b原创 2012-10-11 15:38:25 · 3451 阅读 · 2 评论 -
google custom search使用(二)
之前已经对于Google Custom Search Engine做了一番介绍,接下来我们看一下如何使用。我们做一个简单的例子演示如何使用Google Custom Search Engine:首先你需要一个自定义的搜索引擎,可以访问http://www.google.com/cse进行定制和增加,我们可以在建立的搜索引擎的Control Panel中得到唯一标示符,这里我原创 2012-10-09 21:29:43 · 4484 阅读 · 3 评论 -
google custom search使用(一)
本系列主要讲述Google Custom Search API,主要内容来自于google官方文档。功能介绍google提供了一个非常cool的功能,允许你添加自定义的google搜索功能到你的网站中,这样网站的访问者就可以很方便的获得他们期望搜索的结果。准备工作得到一个google账号首先,你要有一个google账号,如果没有,需要去https://a原创 2012-10-09 15:58:22 · 14766 阅读 · 3 评论 -
Java的一些高级特性(五)——测试和异常处理
关于测试的部分我们来看看assert关键字。需要使用assert关键字需要在Eclipse中的Run Configuration中的VM arguments配置上“-ea”,之后我们可以在代码中添加assert false语句来测试assert代码。我们来看看简单的测试程序:package com.freesoft.javaadvanced;import java.io.B翻译 2012-11-21 19:24:28 · 1119 阅读 · 0 评论 -
Java的一些高级特性(六)——Java7中的目录和文件管理
首先我们来看看Path类:package com.freesoft.java7newfeature;import java.io.IOException;import java.nio.file.LinkOption;import java.nio.file.Path;import java.nio.file.Paths;public class TestPath { pu翻译 2012-11-21 23:05:42 · 3316 阅读 · 0 评论 -
Java的一些高级特性(七)——Java7中的I/O
首先我们来看看一个简单的Byte Stream操作。程序在循环中每次读取一个字节和写入一个字节,最后完成文件的拷贝操作。注意try...with段和in.read()/out.write()方法:package com.freesoft.java7newfeature;import java.io.FileInputStream;import java.io.FileOutputStre翻译 2012-11-22 22:01:51 · 1532 阅读 · 0 评论 -
Java与设计模式(05)--原型模式
模式定义用原型实例指定创建对象的种类,并且通过拷贝这个原型创建新的对象。Prototype模式允许通过一个对象创建另外一个对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。术语浅复制/浅拷贝, shallow copy被复制对象的所有变量都含有与原来的对象相同原创 2013-02-18 17:58:37 · 905 阅读 · 0 评论 -
Java与设计模式(04)--单例模式
单例模式是个非常简单的设计模式,设计目的就是使得目标类仅能创建一个实例。需要实现这个设计目标我们需要做如下工作:由于只能有一个实例,我们不能暴露默认的public构造方法(不能有任何一个public构造方法,即将默认的构造方法使用private隐藏起来),否则可以用new创建实例;由于我们没有构造方法,我们需要通过一个静态的getInstance方法获得一个类的实例;具体实原创 2012-12-20 23:55:53 · 747 阅读 · 0 评论 -
Java与设计模式(03)--抽象工厂模式
上一次我们讨论了工厂方法模式,我们知道,在工厂方法模式中,我们每创建一个新的实体类XXXCar,都对应一个XXXCarFactory,在使用的时候直接使用XXXCarFactory的produce方法创建对应的XXXCar对象。接下来我们讨论抽象工厂模式。我们考虑一下窗口管理器的一个问题:对于每种界面风格,窗口管理器(WindowManager)需要对其中的某个控件(Compone原创 2013-01-30 22:55:18 · 690 阅读 · 0 评论 -
Java与设计模式(02)--工厂方法模式
我们接着之前的简单工厂模式继续。之前讨论过,如果不在使用中通过传入类名参数传入对象,我们在每新增一个类时,都需要修改一次produce()方法,所以我们说简单工厂方法的灵活性是不够的,不符合“开放——封闭”原则。我们考虑一下,将工厂定义为接口,将创建工作放置到子类中,这样代码变为:我们的实体类:Carpublic interface Car { public vo原创 2013-01-28 23:36:15 · 559 阅读 · 0 评论 -
Java与设计模式(01)--简单工厂模式
简单工厂模式的思想很简单:根据传入的参数,工厂的produce()方法创建不同类的对象。首先,由于创建出来的对象分数不同的Class,所以这些Class都应该inherit一个parent class,考虑到我们对接口编程的思想,我们定义一个继承关系:Carpublic interface Car { public void go();}Buspub原创 2013-01-20 14:43:33 · 627 阅读 · 0 评论 -
Java与设计模式(3)--装饰模式
首先我们来看一个使用OutputStream的例子:public class TestFileOutputStream { public static void main(String[] args) throws IOException { FileOutputStream outs = new FileOutputStream("test.txt"); String str原创 2013-01-04 23:12:47 · 645 阅读 · 0 评论 -
Java与设计模式(2)--观察者模式
Observer模式是行为模式之一,它的作用是当一个对象(我们称之为主题,Subject)的状态发生变化时,能够自动通知其他关联对象(我们称之为观察者,Observer)。通常情况下一个主题可以对应一个以上的观察者。实际中经常用在我们的事件模型中,例如AWT事件、Swing事件等等。Observer模式的角色:Subject(主题,被观察者):被观察的对象。当主题的状态发生原创 2012-12-26 21:22:06 · 841 阅读 · 0 评论 -
Java的一些高级特性(八)——Java7中的线程
我们先来看看一个简单的线程:一个新的线程都要继承Thread类,并且将工作内容放到run()方法中:package com.freesoft.testentity;public class WorkingThread extends Thread{ @Override public void run() { int iterations = 5; try { for翻译 2012-11-22 22:38:13 · 979 阅读 · 0 评论 -
MyEclipse9下开发Hibernate实例
数据库表已经建立,之后打开MyEclipse9进入Database Explorer视图。设置数据连接属性如下图:新建一个Web Project,添加Hibernate支持,并且数据连接选择刚才建立的链接。回到Database Explorer,对选中的表原创 2011-10-14 14:37:26 · 1327 阅读 · 0 评论