自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 杂谈 Taglib、EL、OGNL

本篇主要是自己对 JavaWeb中 EL、OGNL、Taglib 个人理解。   因为以上内容都是在 JSP 的基础下产生的概念, 首先得说说我眼中的 JSP。   她自由的、奔放的,就像辽阔的大海,跨越任何服务器屏障、运行在各种平台。   她能容纳下各种形式的代码和标签库,Java 原生代码、JSTL 表达式、Struts Taglib 、JSF Taglib 、Webwork Ta

2017-05-25 09:55:05 404

原创 小巧数据库 Apache Derby 使用攻略

1. Derby 介绍   将目光放在小 Derby 的原因是纯绿色、轻巧、内存占用小,分分钟在你机子跑起来,自己做点需要连接数据库的代码实践非常方便。   虽然 Mysql 也可以,多一种选择,不是也挺好么?   Apache Derby是一个完全用 java 编写的数据库,Derby是一个Open source的产品。   Apache Derby非常小巧,核心部分derby.

2017-05-25 09:54:08 540

原创 IDEA 分享项目到 Git@OSC/GitHub

前提:新开项目,需要在 Git@OSC 建立版本库管理。   1.当然是先在Git@OSC上创建仓库,拿到Git@OSC仓库的HTTP连接 https://git.oschina.net/*****/***.git   2.如果我们的本地项目是非git项目,那我们要先把它变成git项目   在 idea 中 VCS——Import into Version Control——Creat

2017-05-25 09:53:16 390

原创 读取配置文件

1. Spring 和 Apache Commons Configuration   如果项目中没什么特殊的个性化读取配置文件需求,可以使用 Spring 管理配置文件信息,然后注入到需要的地方。   配置文件中需要添加(PS :多配置文件,添加 ignore-unresolvable 参数)。 context:property-placeholder location="c

2017-05-25 09:52:32 589

转载 Linux 中 SVN 重启关闭

a.启动SVN svnserve -d -r /A/B/svn/   其中 -d 表示守护进程, -r 表示在后台执行   /A/B/svn/ 为svn的安装目录b.关闭SVN   这里采取linux杀死进程的方式处理的ps -ef|grep svnserve    root 4967 1 0 Aug23 ? 00:00:00 svn

2017-05-25 09:51:33 1367

转载 Oracle 表和表数据恢复

1. 表恢复   对误删的表,只要没有使用 purge 永久删除选项,那么基本上是能从 flashback table 区恢复回来的。   数据表和其中的数据都是可以恢复回来的,记得 flashback table 是从 Oralce 10g 提供的,一般步骤有:   a.从 flashback table 里查询被删除的数据表select * from recyc

2017-05-25 09:50:38 411

原创 Spring + SpringMVC + Druid + JPA(Hibernate impl) 给你一个稳妥的后端解决方案

1. 采用到的开源项目漫谈   Spring 迷人的依赖注入特性, 使其已经稳稳的占据在 JavaEE 项目引用开源项目列表中的上层位置。   秉承低耦合高内聚的遵旨, Spring 提倡的对象工厂解耦类关系的思想已深入到每个攻城狮的心中。   SpringMVC 做为 Spring 的干儿子,最让我沉醉的是她强大的扩展能力,深邃的像大海一样。   前端无论是 freemarker

2017-05-25 09:49:35 760

原创 PowerDesigner 常用设置

1.使用 JDBC 方式连接 Oracle 逆向生成数据库 PDM   使用 ODBC 方式连接 Oracle 数据库可以借鉴这位兄弟的博客:http://www.cnblogs.com/clivehua/articles/4593211.html   个人感觉用 JDBC 的方式连接 Oracle 是比较简单。    [Database]->[ Configure Connectio

2017-05-25 09:48:35 808

转载 Hibernate 查询方式(HQL/QBC/QBE)汇总

1. HQL 方式,参数使用问号占位(4.1 版本中已被废弃)public List getUserList(UserPO userPO) { String hql = "from UserPO where name = ? and passwd= ?"; Query query = getHibernateSession().createQuery(h

2017-05-25 09:47:28 277

原创 结合实战简析Controller 配置

1. xwork.xml 主文件   xwork.xml 是 WebWork 自身的配置文件,实际开发中它是配置文件的主干骨架。   xwork 定义了一个 default 包,通过 include 包含 xwork 子文件。如下所示:DOCTYPE xworkPUBLIC "-//OpenSymphony Group//XWork 1.0//EN""http://

2017-05-25 09:45:52 366

原创 Hibernate 缓存机制浅析

1. 为什么要用 Hibernate 缓存?   Hibernate是一个持久层框架,经常访问物理数据库。   为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。   缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。2. 项目实战   当 Session

2017-05-25 09:45:01 239

原创 Spring + SpringMVC + Druid + MyBatis 给你一个灵活的后端解决方案

1.方案整体一览   由  Controller 层接受前端参数并响应请求,携带数据跳转页面。   Controller 层注入 ServiceInter, ServiceImpl 层组织业务数据。   ServiceImpl 层注入 Mybatis Mapper, Mapper 进行数据的访问。   和 Hibernate 类似整个 dao 层,都可以由工具生成,工程中使用的

2017-05-25 09:44:02 1067

原创 IDEA 中生成 MyBatis 逆向工程实践

1.搭建 MyBatis Generator 插件环境  a. 添加插件依赖 pom.xml mybatis 逆向生成插件--> plugin> groupId>org.mybatis.generatorgroupId> artifactId>mybatis-generat

2017-05-25 09:43:22 425

转载 自己动手实现简单权限控制

web 权限控制,很多项目会引入 shiro/spring-security。   shiro/spring-security 继承 servlet-->filter抽象接口,运用合适的设计模式,   通过拦截客户端请求,来实现各个角色对系统资源的访问权限。   一时兴起,有了自己实现权限控制的想法,遂有此文,如果你用腻了 shiro/spring-security,不妨来和我一起完善

2017-05-25 09:42:21 491

原创 JSP 页面传值方法总结

1. URL 链接后追加参数a href="next.jsp?paramA=A&paramB=B...">URL 后面追加参数a>jsp:include page="next.jsp">jsp:param name="paramA" value="A"/>jsp:include> jsp:forward page="next.jsp">jsp:param name="param

2017-05-25 09:41:41 268

原创 开源 JSON 库解析性能对比( Jackson / Json.simple / Gson )

Json 已成为当前服务器与 web 应用之间数据传输的公认标准。   微服务及分布式架构经常会使用 Json 来传输此类文件,因为这已经是 webAPI 的事实标准。   不过正如许多我们习以为常的事情一样,你会觉得这是理所当然的便不再深入比较。   我们很少会去想用到的这些 Json 库到底有什么不同,但事实上它们的确是不太一样的。   因此,我们团队来对常用的三个 Json

2017-05-25 09:40:45 331

转载 Dwr 框架简单实例

Dwr 是一个 Java 开源库,帮助你实现Ajax网站。   它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。   Dwr 主要包括两部分:   在服务器上运行的 Servlet 来处理请求并把结果返回浏览器。   运行在浏览器上的 Javascript,可以发送请求,并动态改变页面。   Dwr 会根据你的 J

2017-05-25 09:39:51 286

转载 浅析 JNDI / DataSource / ConnectionPool 三者

最近有个用户量 5W-10W 的 web 应用,频繁导致 weblogic 崩溃,让运维组很难受。   通过几天跟踪系统日志和 weblogic 运行状况,发现报错的姿势有很多,其中对定位问题比较关键的报错:ExecuteThread: '496' for queue: 'weblogic.kernel.Default (self-tuning)' has beenbusy for "71

2017-05-25 09:39:07 443

转载 Java 主流开源类库解析 XML

在大型项目编码推进中,涉及到 XML 解析问题时,大多数程序员都不太会选用底层的解析方式直接编码。   主要存在编码复杂性、难扩展、难复用....,但如果你是 super 程序员或是一个人的项目,也不妨一试。   Jdom/Dom4j/Xstream... 基于底层解析方式重新组织封装的开源类库,简洁明了的 API,稳定高效的运行表现。   Dom4j 基于 JAXP 解析方式,性能优

2017-05-25 09:38:01 763

转载 javascript——数组的那些事

Array构造器如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表。new Array(12)// (12) [undefined × 12]new Array('')// [""]new Array({})// [Object]new Array([])// [Array(0)]new Array(null)

2017-05-25 09:36:57 253

转载 Paxos算法

一、背景Paxos 协议是一个解决分布式系统中,多个节点之间就某个值(提案)达成一致(决议)的通信协议。但Paxos算法晦涩难懂,原版论文也是让人难以理解。故有了本文,希望给大家提供一点思路。二、Paxos算法2.1角色(核心就3个角色)Client:客户端,发起请求并等待返回。Proposer:提议发起者,处理客户端请求,将客户端的请求发送到集群中,以便决定这个值是否可以

2017-05-24 10:17:55 410

转载 netsh & winsock & 对前端的影响

netsh 与 winsock 一个是window的脚本工具,另一个则是window是网络编程中要用到的网络接口,而非要说跟我小小的前端有什么影响,那还真有...,当然这个影响是很不好的,比如nodeJS报“socket 系统调用失败”的错误,再比如sublime安装install package controll 失败,安装emmet是无法连接到PyV8,再比如一些联网的应用软件无法连接网络等等

2017-05-24 10:14:18 272

原创 gunicorn geventworker 解析

本文介绍其中一种asyncworker:GeventWorker。类图如下:   可见GeventWorker重载了init_process(这个方法是Worker唯一暴露给外界的接口),源码如下: 1 def init_process(self): 2 # monkey patch here 3 se

2017-05-24 10:12:04 531

转载 gevent拾遗

Timeout  这个类在gevent.timeout模块,其作用是超时后在当前协程抛出异常,这样执行流程也强制回到了当前协程。看一个简单的例子: 1 SLEEP = 6 2 TIMEOUT = 5 3 4 timeout = Timeout(TIMEOUT) 5 timeout.start() 6 7 def wait(): 8 gevent.s

2017-05-24 10:10:39 215

转载 Dirty Flag 模式及其应用

什么是Dirty Flag:回到顶部  简单来说,就是用一个标志位(flag)来表示一组数据的状态,这些数据要么是用来计算,或者用来需要同步。在满足条件的时候设置标志位,然后需要的时候检查(check)标志位。如果设置了标志位,那么表示这组数据处于dirty状态,这个时候需要重新计算或者同步。如果flag没有被设置,那么可以不计算(或者利用缓存的计算结果)。另外,在两次check之间,即使

2017-05-24 10:09:36 291

转载 同步与异步,回调与协程

概念上下文:回到顶部  当提到同步与异步,大家不免会想到另一组词语:阻塞与非阻塞。通常,同时提到这个这几个词语一般实在讨论network io的时候,在《unix network programming》中有详尽的解释,网络中也有许多讲解生动的文章。      本文所讨论的同步与异步,是指对于请求的发起者,是否需要等到请求的结果(同步),还是说请求完毕的时候以某种方式通知请求发起者(异

2017-05-24 10:08:45 217

原创 Python 小而美的函数

python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们的代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 anyany(iterable)Return True if any element of the iterable is true. If the iterable is empty, return

2017-05-24 10:06:59 137

转载 python描述符 descriptor

在python中,如果一个新式类定义了__get__, __set__, __delete__方法中的一个或者多个,那么称之为descriptor。descriptor通常用来改变默认的属性访问(attribute lookup), 前提是descriptor的实例是类的属性(class attribute)。下面的代码展示了简单的用法  1 # -*- coding:

2017-05-24 10:06:01 144

原创 python属性查找 深入理解(attribute lookup)

首先,我们知道:    python中一切都是对象,“everything is object”,包括类,类的实例,数字,模块    任何object都是类(class or type)的实例(instance)    如果一个descriptor只实现了__get__方法,我们称之为non-data descriptor, 如果同时实现了__get__

2017-05-24 10:05:04 247

原创 python yield generator 详解

generator基础回到顶部  在python的函数(function)定义中,只要出现了yield表达式(Yield expression),那么事实上定义的是一个generator function, 调用这个generator function返回值是一个generator。这根普通的函数调用有所区别,For example:def gen_generator():

2017-05-24 09:55:00 184

转载 greenlet 详解

greenlet初体验回到顶部  Greenlet是python的一个C扩展,来源于Stackless python,旨在提供可自行调度的‘微线程’, 即协程。generator实现的协程在yield value时只能将value返回给调用者(caller)。 而在greenlet中,target.switch(value)可以切换到指定的协程(target), 然后yield value

2017-05-24 09:54:18 339

原创 无限“递归”的python程序

如果一个函数直接或者间接调用了自己,那么就形成了递归(recursion),比如斐波那契数列的一个实现def fib(n): if n : return 1 else: return fib(n - 1) + fib(n - 2)  递归一定要有结束条件,否则就形成了死循环, 比如下面的例子:d

2017-05-24 09:50:34 371

原创 python性能优化

python为什么性能差:回到顶部  当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的时间;另一个是运行效率,这是对计算机而言,完成计算任务所需要的时间。编码效率和运行效率往往是鱼与熊掌的关系,是很难同时兼顾的。不同的语言会有不同的侧重,python语言毫无疑问更在乎编码效率,life is short,we use python。

2017-05-24 09:48:59 423

转载 python计算文件夹大小(linux du命令 简化版)

C盘又满了,怎么办?用了一些垃圾清理软件(或者bat脚本),但是还是不理想,那么具体哪些文件夹下面有巨大的文件呢?windows并不能通过详细信息看到每个文件夹的大小(PS:这里所谓的文件夹的大小是指文件夹下面所有文件的大小之和,包括子文件夹的大小,下同),道理也很简单,计算文件夹大小是比较费时的工作。当然,也可以通过属性查看文件夹大小,但是当一个文件夹下面又有及半个子文件夹的时候,怎么知道哪些比

2017-05-24 09:48:03 462

转载 由一个简单需求到Linux环境下的syslog、unix domain socket

需求:回到顶部  工作中有一个在Linux(debian8)环境下运行的服务器程序,用python语言实现,代码中有不同优先级的日志需要记录,开发的时候都是使用python的logging模块输出到文件,示例代码如下:   1 import logging, os 2 3 logger = None 4 def get_logger(): 5 global

2017-05-24 09:47:10 763

转载 CAP理论与MongoDB一致性、可用性的一些思考

大约在五六年前,第一次接触到了当时已经是hot topic的NoSql。不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉。但是印象深刻的是这么一张图片(后来google到图片来自这里):      这张图片是讲数据库(包括传统的关系型数据库和NOSQL)与CAP理论的关系。由于并NoSql并没有实践经验,也没有去深入了解,对于CAP理论更是一

2017-05-24 09:43:25 795

转载 强制解包看 Swift 的设计

不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包。举个例子,我在 OC 中定义这样一个变量:@property (nonatomic, copy) NSString *foo;它转成 Swift 就变成了这样:var foo: String!这样看上去合情

2017-05-24 09:41:55 268

转载 MyBatis01 MyBatis基础知识

1 MyBatis是什么  mybatis是一个持久层的框架,它对jdbc做了封装;是apache下的顶级项目  mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句  mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象

2017-05-24 09:40:44 218

转载 MyBatis02 MyBatis基础知识之Mapper映射器

1 Mapper映射器是什么  是符合映射文件要求的接口    接口要求      a. 方法名要与sql的id一致。      b. 方法的参数类型要与parameterType一致。      c. 方法的返回类型要与resultType一致。    映射文件要求      namespace必须等于接口名(包含包名)   增加笔记(2017年5月19日09:1

2017-05-24 09:39:52 636

转载 Ajax01 什么是ajax、获取ajax对象、ajax对象的属性和方法

1 什么是ajax  ajax是一种用来改善用户体验的技术,其本质是利用浏览器提供的一个对象(XMLHttpRequest,也可称之为ajax对象) 向服务器发送异步请求;服务器返回部分数据(不是一个完整 的页面),浏览器利用这些数据对当前页面做部分更新; 整个过程,页面无刷新,不打断用户的操作。     注意1:异步请求,指的是,当ajax对象发请求时,浏览器不会销毁当前页面

2017-05-24 09:38:55 2102

空空如也

空空如也

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

TA关注的人

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