摘要: 一、WebLogic 12c的卸载 WebLogic的卸载是非常容易的,找到WebLogic的卸载程序,如下图所示: 启动卸载程序,如下图所示: 点击【完成】按钮完成卸载。 阅读全文
posted @ 2015-03-14 20:38 小光zfg 阅读(949) 评论(0) 推荐(0) 编辑
摘要: 上篇《深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete》介绍了insert、update、delete的用法,本篇将介绍select、resultMap的用法。select无疑是我们最常用,也是最复杂的,mybatis通过resultMap能帮... 阅读全文
posted @ 2014-12-05 20:52 小光zfg 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 上篇文章《深入浅出Mybatis系列(六)---objectFactory、plugins、mappers简介与配置》简单地给mybatis的配置画上了一个句号。那么从本篇文章开始,将会介绍mapper映射文件的配置, 这是mybatis的核心之一,一定要学好。在mapper文件中,以mapper作... 阅读全文
posted @ 2014-12-05 20:51 小光zfg 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 上篇文章《深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)》简单看了一下TypeHandler, 本次将结束对于mybatis的配置文件的学习, 本次涉及到剩下没提及到的几个节点的配置:objectFactory、databaseIdProvider、p... 阅读全文
posted @ 2014-12-05 20:50 小光zfg 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 上篇文章《深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)》为大家介绍了mybatis中别名的使用,以及其源码。本篇将为大家介绍TypeHandler, 并简单分析其源码。Mybatis中的TypeHandler是什么? 无论是 MyBatis 在... 阅读全文
posted @ 2014-12-05 20:43 小光zfg 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 上篇文章《深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)》 介绍了properties与environments, 本篇继续讲剩下的配置节点之一:typeAliases。 typeAliases节点主要用来设置别名,其实这是... 阅读全文
posted @ 2014-12-05 20:19 小光zfg 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 上篇文章《深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)》我们通过对mybatis源码的简单分析,可看出,在mybatis配置文件中,在configuration根节点下面,可配置properties、typeAliases、plugins、objectFactory、o... 阅读全文
posted @ 2014-12-05 20:18 小光zfg 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 上篇文章《深入浅出Mybatis系列(一)---Mybatis入门》, 写了一个Demo简单体现了一下Mybatis的流程。本次,将简单介绍一下Mybatis的配置文件:上次例子中,我们以SqlSessionFactoryBuilder 去创建 SqlSessionFactory, 那么,我们就先从... 阅读全文
posted @ 2014-12-05 20:17 小光zfg 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 最近两年 springmvc + mybatis 的在这种搭配还是蛮火的,楼主我呢,也从来没真正去接触过mybatis, 趁近日得闲, 就去学习一下mybatis吧。 本次拟根据自己的学习进度,做一次关于mybatis 的一系列教程, 记录自己的学习历程, 同时也给还没接触过mybatis的朋友... 阅读全文
posted @ 2014-12-05 20:16 小光zfg 阅读(282) 评论(0) 推荐(0) 编辑
摘要: Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。1、相关文件关于Mybatis-Generator的下载可以到这个地址:https://github.com... 阅读全文
posted @ 2014-12-05 10:13 小光zfg 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 前面两篇文章:新建maven框架的web项目以及将原有项目改成maven框架之后,我们已经有了maven的项目那么maven项目到底怎么启动呢如果我们直接在myeclipse中按以前的启动方法是不行的。(详情下一篇文章会讲到:在myeclipse中启动maven项目)但是maven项目可以生成本地w... 阅读全文
posted @ 2014-12-03 21:57 小光zfg 阅读(18763) 评论(0) 推荐(0) 编辑
摘要: 打开 myeclipse, MyEclipse -->Preferences -->Maven4MyEclipse确定jdk是可用的选择自己安装的maven:点击Add选中我们的maven安装目录,确定后就可以看到我们自己安装的maven的选项了选择我们自己安装maven目录下的setting.xm... 阅读全文
posted @ 2014-12-03 21:52 小光zfg 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 前面一篇文章中我们了解了在myeclipse中新建Maven框架的web项目那么如果我们原来有一些项目现在想转成maven项目应该怎么做呢我收集到了三种思路:一、新建一个maven项目,把原项目按照新项目的框架移植过去二、在原项目的框架上进行修改,把项目目录结构修改成maven框架一样 (详见:为已... 阅读全文
posted @ 2014-12-03 21:47 小光zfg 阅读(2571) 评论(0) 推荐(0) 编辑
摘要: 前面的文章我们已经在本机安装好了maven,同时在myeclipse中配置好了maven的插件。链接如下:Maven安装----在Windows上安装Mavenmyeclipse安装maven插件现在我们就开始在myeclipse中新建一个maven框架的web项目新建项目填写项目名称,一定记得勾选... 阅读全文
posted @ 2014-12-03 21:45 小光zfg 阅读(639) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(十一) 共享内存ngx_shm_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:Nov 14th, 20141.共享内存共享内存是Linux下... 阅读全文
posted @ 2014-12-03 21:16 小光zfg 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(十) 自旋锁ngx_spinlockAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:Nov 11th, 2014 自旋锁(Spinloc... 阅读全文
posted @ 2014-12-03 21:15 小光zfg 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(九) 内存池ngx_pool_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:Nov 11th, 2014今天是一年一度的光棍节,还没有女朋友... 阅读全文
posted @ 2014-12-03 21:14 小光zfg 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(八) 缓冲区链表 ngx_chain_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:Nov 6th, 20141.缓冲区链表结构ngx_ch... 阅读全文
posted @ 2014-12-03 21:13 小光zfg 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(七) 哈希表 ngx_hash_t(下)Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:Nov 3rd, 2014在前面一篇文章《菜鸟nginx... 阅读全文
posted @ 2014-12-03 13:43 小光zfg 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(六) 哈希表 ngx_hash_t(上)Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:October 31h, 20141.哈希表ngx_ha... 阅读全文
posted @ 2014-12-03 13:17 小光zfg 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:October 28h, 20141.什么是基数树... 阅读全文
posted @ 2014-12-03 13:13 小光zfg 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(四)红黑树ngx_rbtree_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:October 27h, 20141.ngx_rbtree优势... 阅读全文
posted @ 2014-12-03 13:12 小光zfg 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(三) 单向链表 ngx_list_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:October 23h, 20141.ngx_list优势和... 阅读全文
posted @ 2014-12-03 13:11 小光zfg 阅读(427) 评论(0) 推荐(0) 编辑
摘要: nginx源码剖析数据结构篇(二) 双向链表ngx_queue_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:October 20h, 20141.ngx_queue优势和特... 阅读全文
posted @ 2014-12-03 13:10 小光zfg 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 菜鸟nginx源码剖析数据结构篇(一)动态数组ngx_array_tAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:October 20h, 20141.ngx_array优势和... 阅读全文
posted @ 2014-12-03 13:07 小光zfg 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 性能与伸缩性使用线程的一种说法是为了提高性能。多线程可以使程序充分利用闲置的资源,提高资源的利用率,同时能够并行处理任务,提高系统的响应性。 但是很显然,引入线程的同时也引入了系统的复杂性。另外系统的性能并不是总是随着线程数的增加而总是提高。性能与伸缩性性能的提升通常意味着可以用更少的资源做更多的事... 阅读全文
posted @ 2014-12-02 22:47 小光zfg 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 常见的并发陷阱volatilevolatile只能强调数据的可见性,并不能保证原子操作和线程安全,因此volatile不是万能的。参考指令重排序volatile最常见于下面两种场景。a. 循环检测机制volatilebooleandone=false;while(!done){dosomething... 阅读全文
posted @ 2014-12-02 22:46 小光zfg 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 常见的并发场景线程池并发最常见用于线程池,显然使用线程池可以有效的提高吞吐量。最常见、比较复杂一个场景是Web容器的线程池。Web容器使用线程池同步或者异步处理HTTP请求,同时这也可以有效的复用HTTP连接,降低资源申请的开销。通常我们认为HTTP请求时非常昂贵的,并且也是比较耗费资源和性能的,所... 阅读全文
posted @ 2014-12-02 22:44 小光zfg 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 死锁与活跃度前面谈了很多并发的特性和工具,但是大部分都是和锁有关的。我们使用锁来保证线程安全,但是这也会引起一些问题。锁顺序死锁(lock-ordering deadlock):多个线程试图通过不同的顺序获得多个相同的资源,则发生的循环锁依赖现象。动态的锁顺序死锁(Dynamic Lock Orde... 阅读全文
posted @ 2014-12-02 22:40 小光zfg 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 并发包引入的工具类很多方法都会抛出一定的异常,这些异常描述了任务在线程池中执行时发生的例外情况,而通常这些例外需要应用程序进行捕捉和处理。例如在Future接口中有如下一个API:java.util.concurrent.Future.get(long,TimeUnit)throwsInterrup... 阅读全文
posted @ 2014-12-02 22:39 小光zfg 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 线程池任务执行结果这一节来探讨下线程池中任务执行的结果以及如何阻塞线程、取消任务等等。1packageinfo.imxylz.study.concurrency.future;23publicclassSleepForResultDemoimplementsRunnable {45staticboo... 阅读全文
posted @ 2014-12-02 22:38 小光zfg 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 线程池任务执行流程我们从一个API开始接触Executor是如何处理任务队列的。java.util.concurrent.Executor.execute(Runnable)Executes the given task sometime in the future. The task may ex... 阅读全文
posted @ 2014-12-02 22:37 小光zfg 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 线程池数据结构与线程构造方法由于已经看到了ThreadPoolExecutor的源码,因此很容易就看到了ThreadPoolExecutor线程池的数据结构。图1描述了这种数据结构。图1 ThreadPoolExecutor 数据结构其实,即使没有上述图形描述ThreadPoolExecutor的数... 阅读全文
posted @ 2014-12-02 22:36 小光zfg 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 我们知道线程是有多种执行状态的,同样管理线程的线程池也有多种状态。JVM会在所有线程(非后台daemon线程)全部终止后才退出,为了节省资源和有效释放资源关闭一个线程池就显得很重要。有时候无法正确的关闭线程池,将会阻止JVM的结束。线程池Executor是异步的执行任务,因此任何时刻不能够直接获取提... 阅读全文
posted @ 2014-12-02 22:35 小光zfg 阅读(237) 评论(0) 推荐(0) 编辑
摘要: Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是ExecutorService。下面这张图完整描述了线程池的类体系结构。首先Executor的execute方法只是执行一个Runnable的任务,当然了从某... 阅读全文
posted @ 2014-12-02 22:33 小光zfg 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 从这一节开始正式进入线程池的部分。其实整个体系已经拖了很长的时间,因此后面的章节会加快速度,甚至只是一个半成品或者简单化,以后有时间的慢慢补充、完善。其实线程池是并发包里面很重要的一部分,在实际情况中也是使用很多的一个重要组件。下图描述的是线程池API的一部分。广义上的完整线程池可能还包括Threa... 阅读全文
posted @ 2014-12-02 22:30 小光zfg 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 本小节是《并发容器》的最后一部分,这一个小节描述的是针对List/Set接口的一个线程版本。在《并发队列与Queue简介》中介绍了并发容器的一个概括,主要描述的是Queue的实现。其中特别提到一点LinkedList是List/Queue的实现,但是LinkedList确实非线程安全的。不管Bloc... 阅读全文
posted @ 2014-12-02 22:27 小光zfg 阅读(842) 评论(0) 推荐(0) 编辑
摘要: 可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给exchange方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象。Exchanger 可能被视为SynchronousQueue的双向形式。换句话说Exchanger提供的是一个交换服务,允许原子性的交换两个(多个)... 阅读全文
posted @ 2014-12-02 22:26 小光zfg 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 这个小节介绍Queue的最后一个工具,也是最强大的一个工具。从名称上就可以看到此工具的特点:双向并发阻塞队列。所谓双向是指可以从队列的头和尾同时操作,并发只是线程安全的实现,阻塞允许在入队出队不满足条件时挂起线程,这里说的队列是指支持FIFO/FILO实现的链表。首先看下LinkedBlocking... 阅读全文
posted @ 2014-12-02 22:25 小光zfg 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 有一段时间没有更新了。接着上节继续吧。Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(Link... 阅读全文
posted @ 2014-12-02 22:24 小光zfg 阅读(358) 评论(0) 推荐(0) 编辑