SPI的简单应用
在查看java.sql.DriverManager
源码时,发现有这么一个静态方法叫做loadInitialDrivers()
。在这个方法里,我发现在项目启动中驱动管理器会从系统变量jdbc.drivers
中获取具体的驱动实现并注册,其次会使用SPI注册驱动。这些我在 再谈驱动注册 中已经讲过了,那么什么是SPI?怎么用?
在查看java.sql.DriverManager
源码时,发现有这么一个静态方法叫做loadInitialDrivers()
。在这个方法里,我发现在项目启动中驱动管理器会从系统变量jdbc.drivers
中获取具体的驱动实现并注册,其次会使用SPI注册驱动。这些我在 再谈驱动注册 中已经讲过了,那么什么是SPI?怎么用?
前两天看Spring框架参考手册,发现SpringMVC在4.0版本上支持异步请求处理。废话不多说,开始异步请求之旅。
打包是一个比较头疼的事情,默认maven打包的结果只包含项目本身的代码,如果要执行代码,还得带上依赖。如果希望将所有依赖放到指定的文件夹下,再在目录下写入shell脚本等之类的事情。maven-shade-plugin插件不能满足需求,而maven-assembly-plugin插件能够帮我们合理地归档文件。
打包是一个比较头疼的事情,默认maven打包的结果只包含项目本身的代码,如果要执行代码,还得带上依赖。maven-shade-plugin插件就能够帮我们把项目依赖的包也打进最终文件。
SSM开发网上一找一大堆,可是有时候深入使用一下问题还不少,今天就来看看ContextLoaderListener
配置带来的问题。
线程池,凡是学过java的同学都不陌生,一两行简单的代码就能实现并发编程。但java.util.concurrent.ThreadPoolExecutor
的源码读起来却是很绕,今天,就让我们来深入了解一下线程池吧。