归档之于 ‘ 2017 年六月

Velocity原理探究

一、前言

常见的Java模板引擎有JSP、Freemark,Velocity。在MVC三层框架中,模板引擎属于view层,实质是把model层内容展现到前台页面的一个引擎,velocity以其前后端解耦使前后台可以同时开发和其语法的简易性得到了广泛的应用,集团WebX框架就建议使用它作为模板引擎。

阅读全文

子线程优雅调用父线程RequestScope作用域Bean问题的探究

 

一、前言

最近我们组在做项目分层模块化项目调研,就产生一个问题如何在开启的线程中不破坏使用习惯情况下使用请求线程里面的RequestScope作用域的bean,感觉这个问题比较有意思就研究并整理下一下,以便备忘,下面从最基础知识将起,一步步引入问题和解决方法

阅读全文

Maven 配置

原文链接

Maven 配置

Maven 配置发生有三个级别:

  • Project – 静态配置在pom.xml
  • Installtion – 这个配置在maven的一次安装中
  • User – 这个配置指定部分用户

这样区分就清晰了 – 项目定义信息应用于项目,无论是谁构建它,当其他人也从定义了一些配置作为环境变量。

阅读全文

高并发编程必备基础

一、前言

借用Java并发编程实践中的话”编写正确的程序并不容易,而编写正常的并发程序就更难了”,相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作的顺序是不可预期的,本文算是对多线程情况下同步策略的一个简单介绍。

阅读全文

Java中线程池ThreadPoolExecutor原理探究

一、 前言

线程池主要解决两个问题:一方面当执行大量异步任务时候线程池能够提供较好的性能,这是因为使用线程池可以使每个任务的调用开销减少(因为线程池线程是可复用的)。另一方面线程池提供了一种资源限制和管理的手段,比如当执行一系列任务时候对线程的管理,每个ThreadPoolExecutor也保留了一些基本的统计数据,比如当前线程池完成的任务数目。

阅读全文

并发队列-有界阻塞队列ArrayBlockingQueue原理探究

一、 前言

上节介绍了无界链表方式的阻塞队列LinkedBlockingQueue,本节来研究下有界使用数组方式实现的阻塞队列ArrayBlockingQueue

阅读全文

并发队列-无界非阻塞队列ConcurrentLinkedQueue原理探究

一、 前言

常用的并发队列有阻塞队列和非阻塞队列,前者使用锁实现,后者则使用CAS非阻塞算法实现,使用非阻塞队列一般性能比较好,下面就看看常用的非阻塞ConcurrentLinkedQueue是如何使用CAS实现的。

阅读全文

《Maven官方指南》模型指南

原文链接

模型指南

模型是一个从简单模板生成源码的工具。从简单模板你可以生成这些:

  • Java源码
  • XML序列化源码模型
  • XML反序列化源码模型
  • 模型文档
  • XSD

阅读全文

《Maven官方指南》构建Maven

原文链接

构建Maven

为什么我想构建Maven?

构建有两个原因,其中一个是Maven的原因:

  • 为了尝试一些边缘特性或修正(版本可以在JRIA中找到)。
  • 为了你已经修复一个问题和提交分支到开发者团队。

阅读全文

《Maven官方指南》创建装配

原文链接

创建装配

装配机制在Maven中提供了一种简单的方式创建,分布使用一个装配描述符和依赖信息在你的pom中。为了有序地使用插件你需要配置装配插件在你的pom中和它可能看起来像这样:

阅读全文

并发队列-无界阻塞队列LinkedBlockingQueue原理探究

一、前言

前面介绍了使用CAS实现的非阻塞队列ConcurrentLinkedQueue,下面就来介绍下使用独占锁实现的阻塞队列LinkedBlockingQueue的实现。

阅读全文

并发队列-无界阻塞优先级队列PriorityBlockingQueue原理探究

一、 前言

PriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最高的元素,是二叉树最小堆的实现,研究过数组方式存放最小堆节点的都知道,直接遍历队列元素是无序的。

阅读全文

《Spring 5 官方文档》15.使用JDBC实现数据访问

15.1 介绍Spring JDBC框架

表格13.1很清楚的列举了Spring框架针对JDBC操作做的一些抽象和封装。里面区分了哪些操作Spring已经帮你做好了、哪些操作是应用开发者需要自己负责的.

表13.1. Spring JDBC – 框架和应用开发者各自分工
阅读全文

《Maven官方指南》使用扩展

原文链接

使用扩展

扩展使用货车提供者,用于在仓库中运输工件和提供生命周期增强的插件。

阅读全文

《Maven官方指南》Maven使用Ant指南

原文链接

Maven使用Ant指南

这个例子中说明咱们绑定一个ant脚本到生命周期。你可以加入脚本到每一个生命周期,复制 execution/ section可以指定一个新的周期。

阅读全文

return top