自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(42)
  • 收藏
  • 关注

原创 四十二、grails框架学习总结

14年12月工作需要,学习了grails框架,使用grails实现了一套前后台页面的开发并且部署到linux服务器。grails确实是一个简洁、高效、易用的框架,满足生产需要,并且java程序员学习成本较低。现就过程中遇到的主要问题进行总结,分享给同样被这些问题困住的同行一、grails框架的使用过程1.下载grails(本人使用的版本是2.4.2)、解压、配置环境变量2.通过命令gr

2015-01-29 15:02:01 974

原创 四十一、页面爬取处理

一、页面的爬取如何获取网页内容,不明觉厉呀,原来就是一个HttpClient搞定。 比如下面获取聚划算首页的例子,简洁完整地展示了HttpClient的使用过程。import java.io.IOException;import org.apache.commons.httpclient.*;import org.apache.commons.httpclient.method

2014-10-11 17:19:45 691

原创 四十、线程池

根据线程池的原理,自己实现个线程池。/* * 线程池管理器:用于创建并管理线程池,包括: 创建线程池,销毁线程池,添加新任务 * 客户端等待一个可用线程、将任务传递给该线程以便执行、然后在任务完成时将线程归还给池 */public class ThreadPool { private static ThreadPool instance = null; private Li

2014-08-22 16:47:23 578

原创 三十九、如何单独发布jar包

想实现一种功能,任何需要的 在服务器上运行,

2014-08-01 10:22:44 793

原创 三十八、多线程实例

有下面两种实现:private static void searchFile(final File f) throws InterruptedException { if (f != null) { if (f.isDirectory()) { File[] fir = f.listFiles(); if (fir != null) { for (int i

2014-08-01 10:04:19 561

原创 三十七、多线程的两种模式

下面用多线程的两种模式:

2014-07-22 18:16:51 508

原创 三十六、sigar配置那些事

Sigar全称是SystemInformation Gatherer And Reporter,中文名是系统信息收集和报表工具。要想使用sigarSigar.jar包是通过本地方法来调用操作系统API来获取系统相关数据。

2014-07-04 09:55:11 829

原创 三十五、字符集到底是怎么回事呀

public static void main(String[] args){String dir = "C:/Users/tao/config/nvshen-sensitive-words.properties";File file = new File(dir);InputStream is = null;try {is = new FileInputStream(file);System.o

2014-04-25 11:40:59 638 2

原创 三十四、JSON转换小细节

今天遇到一个非典型性的需求,要写一个新的方法,其方法实现与已经实现了的一个老方法是一模一样的,但两个方法的入参和返回值都是相同的只是名称不同而已。要求必须写成两个方法,并携带各自的入参和返回值。那要怎么做呢?有几种方法?最简单的是,首先将新方法的入参和返回值转成和老方法一样的再在新方法中调用老方法。老方法如下:public QueryFeedCommentsResponse queryFe

2014-02-26 18:13:00 664

原创 三十三、Spring webmvc 学习总结

Spring webmvc框架真是一柄利器,让web应用的开发变得如此简单美妙。如何使用MVC框架,其内部原理又是怎样的呢?使用Spring webmvc框架首先要在工程的pom.xml配置文件中引入org.springframeworkspring-webmvcspring某3.0以上版本

2014-01-27 12:57:43 854

原创 三十二、服务器的配置部署

最近有机会将只有ubuntu系统的准裸服务器配置成可部署运行web工程的线上服务器,过了把PE的瘾。从最最基本的都要软件安装(依次安装JDK、版本管理工具如SVN/CVS等、项目管理工具如MAVEN/ANT等、应用服务器TOMCAT/JBOSS等、反向代理服务器NGINX/APACHE等、数据库和缓存服务器等)到系统工程配置,在过程中遇到的小问题,统统整理备忘。1.无法运行sudo apt-g

2013-11-01 18:46:16 694

原创 三十一、反射的应用之一

遇到这样一个业务场景:要使用的类有个私有的变量,并且要使用的该类中一个方法需要用到这个变量。要求在运行时对这个变量进行更改后,使用这个方法,就是要使用这个方法中已经动态改变了的变量。结合下面的代码,就是在InvokerForDaughter中调用Father的execute()方法,此方法中用到的privateKey是个private的,没有set方法对其进行改变,只有个可利用的构造函数可将其

2013-09-30 21:13:10 596

原创 三十、存储过程和事件调度

一、概念存储过程,我的理解是写一段面向过程的包含sql的代码,然后存储到数据库。之后再用时可以在数据库里直接执行,也可以通过事件来规律地重复调用,还可以在java等中进行调用。二、基本语法1.创建和删除create proc[edure]  存储过程名([[IN |OUT |INOUT ] 参数名 数据类形...])[区块名:]  begin.........end

2013-09-05 22:10:22 749

原创 二十九、各种名称的服务器

看到各种名称的服务器,一时间有点晕,整理下备忘。下面的两张图是网上的截图,结构比较清晰所以顺手牵羊之。Web服务器(Web Server)         Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务

2013-03-24 15:45:06 788

原创 二十八、JVM概述

Java虚拟机(JVM)是在一台真正的机器上用软件方式实现的一台假想机,操作系统装入JVM是通过jdk中Java.exe来完成。JVM为CPU解释编译的字节码,使其能够执行Java程序的指令。JVM可以以一次一条指令的方式来解释字节码把它映射到实际的处理器指令,或者字节码也可以由即时编译器进行进一步的编译。 JVM有两种机制,一个叫做类装载机制(负责装载类或接口的);另一个叫做执行

2013-03-23 19:49:39 895 1

原创 二十七、权限控制的自定义注解实现方式

目的:将账号的操作权限通过数据库进行配置,程序限制只有当拥有某权限时才能调用相应方法。首先在注解类里定义权限(包括读、写、审核权限)。@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface AuthAnnotation { public enum AuthLevel{read

2013-01-25 16:15:06 801

原创 二十六、用电脑上微信

如果手机不是智能机,又要玩微信,那也不是完全没有办法,可以在电脑上装微信。电脑装微信的过程比较麻烦,比想象的麻烦多了,因为网上教的虽然也有,但照着做也会遇到很多问题。想想自己三个月前装微信,就是费了好大的周折,不过总算装上了,装上了还是很开心的。当时是照着http://jingyan.baidu.com/article/295430f11655c00c7e005006.html做的,因为本子上

2012-12-31 22:44:36 654

原创 二十五、Eclipse插件开发实例

开发个小插件,功能是从eclipse里打开暴风影音播放器。很无聊的功能哈,顶多是省了个ctrl+d,不过这就是懒人的追求,呵呵,其实花絮是这样滴:电梯里遇到leader,leader说好久不见了紫柔,这时旁边一个人说这就是紫柔啊,leader说这就是那个制作无码步兵插件的紫柔,呵呵,臭名远扬了,其实不过是半年前看到有人在eclipse文件夹下放了个步兵的文件夹,就随便说了句--可以在eclipse

2012-11-10 19:56:22 1578

原创 二十四、系统设计之火车票预定系统后记

火车票预订系统的特性决定了它必须要满足高吞吐率高并发的要求,用户瞬时请求量可能非常大并且要求系统响应速度在可接受范围内。如果为每个客户请求分配一个线程,只要请求的到达速率不超出服务器的请求处理能力,那么这种方法可以同时带来更快的响应性和更高的吞吐率。这种将每个任务放在各自的线程中执行,问题在于资源管理的复杂性。而线程池简化了对线程的管理工作。线程池是用于管理一组同构工作线程的资源池。工作者线程

2012-10-20 11:23:01 872

原创 二十三、自定义并解析Xml文件

第一步,定义Xml文件。随便定义一个xml,例如:1     10000  第二步,获取Xml数据。(Xml文件读入在页面上一般会用个弹出框或者浮层的展现形式,但从实现上一般来说都会是一个异步ajax请求。)首先从request中取xml描述信息,比如String  xmlDesc  = rundata.getRequest.getParamet

2012-09-10 11:39:38 1144 1

原创 二十二、应用双重锁定检查于单例模式中的问题

之前在很多单例类中看到双重锁定检查(DCL),也听到过两种声音:第一种声音是希望只在第一次创建实例时进行同步,于是才有两次判断instance是否为null的判断;另一种声音是双重锁定检查用在这里根本起不到预想的作用。今天终于知道后一种说法的原因了。public class SingletonPattern { private static SingletonPattern instanc

2012-08-27 16:18:13 492

原创 二十一、自定义注解实例

示例:用自定义注解实现对权限的控制。如果只有读权限就只可见页面上查询部分,如果有写权限或全部权限就不但能操作查询部分还能操作修改部分。(查询部分和修改部分用文字代替,但只要在页面可见就表示可以操作) 首先是定义注解类和使用这个自定义注解的类:import java.lang.annotation.ElementType;import java.lang.annotation.Ret

2012-07-26 17:25:21 469

原创 二十、类加载实例

看到一套开源的监控系统的热部署功能,梳理了一下,也就相关知识简单备注如下以备忘。热部署的过程是调用ProcessorManager类的executeProcessor方法,其中先加载Processor的实例,然后调用此Processor实例的execute方法。public class ProcessorManager implements BeanFactoryAware{publi

2012-06-25 11:21:45 405

原创 十九、一套规则限制的校验

首先在spring容器启动时加载所有规则校验类。在SpringObjectCheckManagerFactory类的afterPropertiesSet()方法中进行加载。所有规则校验类都实现自ObjectCheck接口。 package com.taobao.member.prop.ao.check;import com.alibaba.common.logging.Lo

2012-05-31 19:37:47 481

原创 十八、设计模式 之 组合模式

目标:用组合模式实现规则的校验。首先设计一个规则表,包括member_level、rule_type、condition_key、condition_value等字段。然后用树形结构来拼装规则,根节点是道具规格版本的id,第一层树枝节点是member_level,第二层是rule_type,第三层就是叶节点了,叶节点存储的是个map,map的key是condition_key,value是co

2012-04-28 17:10:46 428

原创 十七、网络协议之Http协议的应用初体验

下面的示例程序是HTTP协议使用HttpClient接口的应用示例,其用意是将请求里的数据封装后,通过http协议提交请求。先写下了备用。import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.NameValuePair;import org.apache.commons.

2012-04-28 11:44:52 889

原创 十六、设计模式 之 命令模式

道具系统作为一个底层平台,要以统一的模型支持日后对会员提供的所有让利优惠活动--比如特权、卡片、徽章等等。除了要支持各式各样的让利优惠活动外,还要求系统具有高度灵活性易扩展,同时因为这些让利优惠活动要贯穿在交易的过程中,所以要求系统高度稳定。 道具的生命周期包括道具发布、上架、领取、激活、使用、停用、下架。为系统易用必将提供后台的页面配置功能,也会将这些清晰独立的生命周期中的过程抽象成

2012-03-31 14:01:05 612

原创 十五、系统设计之火车票预订系统

背景:昨天元宵佳节同事聚餐,大家聊起今年的网上订票系统,毁誉参半呀。从程序员的角度我们是怎么看这个铁老大斥资几千万的大系统的,这里我就不说了。要写的是如果我是这个系统的架构师(呵呵夸口了,如果也许假设是,然而未必不见得,嘿嘿),我会如何设计这个系统。2月我会利用零星的时间,就这个系统演练下系统设计的能力,作为这个月送给自己的玩具,呵呵,不足之处欢迎大家批评指正踊跃拍砖。目标:

2012-02-07 09:56:32 4607 6

原创 十四、JSON、JSONP、jQuery等

一、JSON(JavaScript Object Notation)是一种在浏览器和服务器之间交换数据的格式,可用于传递对象(key-value对,数组或其他对象)。JSON可以在JavaScript里传递到eval()方法中使用,也能使用Ajax方法来传递(例如httpWebRequest)。JSON很像XML,但比XML要轻量级,都可以自描述,通过层级的形式,能被多种语言解析和使用。格

2012-01-06 11:13:04 2016

原创 十三、Java线程基础

本篇介绍线程的基础知识,包括:线程是什么、线程为什么有用处、怎样开始编写使用线程的程序、如何控制线程、如何在线程之间交换数据以及线程如何互相通信。一、线程是什么       进程是在某种程度上相互隔离的、独立运行的程序。线程也称作轻量级进程,就像进程一样,线程在程序中是独立的、并发的执行,每个线程有自己的堆栈、程序计数器和局部变量。但是与进程想比,进程中的线程之间的隔离程度要小,线程共享内

2012-01-06 09:20:45 675

原创 十二、多线程的同步

在一个应用程序中使用多线程,一般情况下,这多个线程之间是要互相通信并共享结果的。让多个线程共享结果的最简单方法是使用共享变量,线程与同一个进程中的其他线程共享相同的进程上下文,包括内存,因此只要访问共享变量(静态或实例字段),线程就可以互相交换数据。要保证这些共享变量值从一个线程正确传播到另一个线程,保证一个线程在更新一些相关数据时其他线程看到一致的中间结果,要使用同步。即通过使用同步来保护对共享

2012-01-06 09:14:57 830

原创 十一、多线程的应用场景

我们有时貌似熟悉异步、多线程、任务和并行,但有时又不一定特别清楚它们之前的本质区别,甚至在很多复杂的场景下乱用一气。下面我就结合场景来说明在什么情况下该采用什么。同时,还讲解下如何优雅地控制线程,处理任务和并行中的异常。  一、在什么场景可以使用多线程想要同时处理多件事:单线程处理不了的,必须使用多线程。(类似于分身术)多个线程分解大任务:用单线程可以做,但是使用多线程可以更快。(

2012-01-04 16:28:53 7761 1

原创 十、AOP实例

Aspect.xml:xml"http://www.springframework.org/schema/beans"        xmlns:aop="http://www.springframework.org/schema/aop"        http://www.springframework.org/schema/aop bean    propertybe

2012-01-04 15:19:56 761

原创 九、J2EE的体系结构和MVC设计模式

J2EE规范提出了自己的n-tiers结构。在普通应用中,我们大多会按如下方式划分:表示层:管理用户的请求,对用户的请求做出相应的响应,并向用户显示出相应信息。Struts框架在表示层可以对用户的请求进行处理,有控制器可以调用下层业务逻辑,可以对异常进行处理,以及对用户输入的信息进行验证。表示层还可以选择Velocity、JSF等。业务逻辑层:负责业务逻辑的实现。Spring框架在

2012-01-04 09:07:15 810

原创 八、J2EE综述

J2EE的概念         J2EE是Sun提出的使用Java技术构建多层次企业级应用的标准。(企业级应用通常指那些为商业组织、大型企业创建并部署的解决方案及应用。企业级应用多是事务密集的可以是跨越Intranet和Internet的分布式应用,要求高可用性、安全性、可依赖性和可扩展性)        Java 2平台有3个版本,分别是:适用于小型设备和智能卡的Java 2

2012-01-03 14:35:04 621

原创 七、Java多线程与并发

JAVA平台为程序员提供了并发编程所需的功能强大的API,呵呵,就像一块奶油蛋糕般刺激你的味蕾同时又挑战你将体重控制在某个水平的信念,该篇及后续文章展示Java 多线程与并发编程的诱人之处,帮助理解Java并发编程的模式,以及如何更精确地使用线程模型。Java 线程基础一、锁        锁提供两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。

2011-12-11 22:36:04 1090

原创 六、设计模式 之 建造模式

首先描述下业务场景:A需求是,根据电话号码取会员信息,包含交易记录的信息。B需求是,根据会员id取会员信息,或根据电话号码取会员信息,但都不包括交易记录的信息。因为后一个需求是在前一个需求的设计阶段提出的,因此考虑将类似功能作为对外提供的统一接口。同时要搭建新的会员基础平台,爽啊,一切都是新的。又是一个人设计并编码,可以心随所想,泼墨挥毫,尽情尽兴,怎一个爽字了得!分析设计:所需要的步骤有:1

2011-11-08 19:29:44 750

原创 五、Hadoop+HBase实例

写个例子玩玩,意图是将c:/input目录下的1.txt,2.txt,3.txt中的内容用传说中的mapreduce来map一下,再reduce一下。在c:/output下的part-r-00000文件果真是按字典序给排好了哈。 package com.taobao.app;import java.io.IOException;import org.apache.hadoop.io

2011-08-02 17:18:37 3712 4

原创 四、Hadoop+HBase+ZooKeeper三者关系图

这里有几个主要关系:1.经过Map、Reduce运算后产生的结果看上去是被写入到HBase了,但是其实HBase中HLog和StoreFile中的文件在进行flush to disk操作时,这两个文件存储到了HDFS的DataNode中,HDFS才是永久存储。2.ZooKeeper跟Hadoop Core、HBase有什么关系呢?ZooKeeper都提供了哪些服务呢?主要有:管理Hadoo

2011-07-21 23:07:18 13090

原创 三、设计模式综述

作用:提供前人的经验供开发者们借鉴,目的是为了提高代码质量、提高软件设计和系统架构能力。分类:(1)侧重点是代码的Gof23经典设计模式             (2)侧重点是系统架构的J2EE设计模式             二者虽然角度不同,但其本质相同,从更高的层次来说,应该是 统一在 从业务需求的角度 进行软件设计 的理念中。gof23的设计模式大致可分为如下三类:

2011-07-06 10:01:52 1023

空空如也

空空如也

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

TA关注的人

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