Velocity原理探究
一、前言
常见的Java模板引擎有JSP、Freemark,Velocity。在MVC三层框架中,模板引擎属于view层,实质是把model层内容展现到前台页面的一个引擎,velocity以其前后端解耦使前后台可以同时开发和其语法的简易性得到了广泛的应用,集团WebX框架就建议使用它作为模板引擎。
子线程优雅调用父线程RequestScope作用域Bean问题的探究
一、前言
最近我们组在做项目分层模块化项目调研,就产生一个问题如何在开启的线程中不破坏使用习惯情况下使用请求线程里面的RequestScope作用域的bean,感觉这个问题比较有意思就研究并整理下一下,以便备忘,下面从最基础知识将起,一步步引入问题和解决方法
Java中线程池ThreadPoolExecutor原理探究
一、 前言
线程池主要解决两个问题:一方面当执行大量异步任务时候线程池能够提供较好的性能,,这是因为使用线程池可以使每个任务的调用开销减少(因为线程池线程是可以复用的)。另一方面线程池提供了一种资源限制和管理的手段,比如当执行一系列任务时候对线程的管理,每个ThreadPoolExecutor也保留了一些基本的统计数据,比如当前线程池完成的任务数目。
另外,线程池提供许多可调参数和可扩展性钩子。程序员可以使用更方便
工厂方法比如newCachedThreadPool(无限线程池,线程自动回收),newFixedThreadPool(固定大小的线程池)newSingleThreadExecutor(单个线程),当然用户还可以自定义。
并发队列-无界非阻塞队列ConcurrentLinkedQueue原理探究
一、 前言
常用的并发队列有阻塞队列和非阻塞队列,前者使用锁实现,后者则使用CAS非阻塞算法实现,使用非阻塞队列一般性能比较好,下面就看看常用的非阻塞ConcurrentLinkedQueue是如何使用CAS实现的。
并发队列-无界阻塞优先级队列PriorityBlockingQueue原理探究
一、 前言
PriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最高的元素,是二叉树最小堆的实现,研究过数组方式存放最小堆节点的都知道,直接遍历队列元素是无序的。
《Spring 5 官方文档》15.使用JDBC实现数据访问
15.1 介绍Spring JDBC框架
表格13.1很清楚的列举了Spring框架针对JDBC操作做的一些抽象和封装。里面区分了哪些操作Spring已经帮你做好了、哪些操作是应用开发者需要自己负责的.
表13.1. Spring JDBC – 框架和应用开发者各自分工
阅读全文