![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 66
pomer_huang
尽人事,听天命
展开
-
源码解析 Lock Condition
接上一篇:源码解析 ReentrantLockhttp://blog.csdn.net/pomer_huang/article/details/780470521. await()查看 ReentrantLock.newCondition() 的 await() 方法void await() throws InterruptedException;这是一个接口方法,实现者是 AbstractQu原创 2017-09-25 01:20:47 · 272 阅读 · 0 评论 -
SpringBoot 配置 Servlet、Filter、Listener
嵌入式的 Servlet 3.0+ 容器不会直接使用 ServletContainerInitializer 和 WebApplicationInitializer,即通过以上两个接口实现的(Servlet、Filter、Listener)配置是无效的,这是为了防止第三方代码的设计损坏应用程序,原文如下 Embedded servlet containers will not direct...原创 2018-01-17 11:56:25 · 465 阅读 · 0 评论 -
源码解析 DefaultListableBeanFactory
DefaultListableBeanFactory,是 GenericApplicationContext 和 AbstractRefreshableApplicationContext 的(bean工厂)默认策略,而这两者是所有 xxxApplicationContext 的基类,因此 DefaultListableBeanFactory 可以说是 ApplicationContext 的标准...原创 2018-02-15 16:29:47 · 1657 阅读 · 0 评论 -
源码解析 RequestMappingHandlerMapping
RequestMappingHandlerMapping 比 DefaultAnnotationHandlerMapping(DispatcherServlet的默认策略,但Spring 3.2不再推荐使用)更强大 可以看出这是一个桥接模式,其中PathMatcher、CorsProcessor、HandlerMethodMappingNamingStrategy都是接口,它们独立于Hand原创 2018-01-15 01:20:10 · 1085 阅读 · 0 评论 -
源码解析 SpringMVC - DispatcherServlet
HttpServletBean 由 HttpServlet 扩展而来,其旨在将 web.xml 里配置的 servlet参数(init-param)填入 Bean的属性(即HttpServletBean派生类的成员变量),此类是一个提供了参数自动映射功能的抽象类,与MVC设计关系不大查看 FrameworkServlet 源码public abstract class FrameworkS原创 2018-01-11 23:16:38 · 210 阅读 · 0 评论 -
将 Apache Shiro 改造成 JWT 认证方式
要想成功改造,只需做到三点用 Shiro 提供的 DefaultWebSessionManager 替代默认的 ServletContainerSessionManager - ServletContainerSessionManager 是 DefaultWebSecurityManager 使用的默认实现,用于 Web 环境,其直接使用 Servlet 容器的会话 ...原创 2017-09-30 00:38:21 · 5976 阅读 · 0 评论 -
Spring Boot 配置静态资源处理
先讲几点有关嵌入式 Tomcat 运行的事项 request.getSession().getServletContext().getRealPath(“/”),这个不用多说了,总之很重要,先将其简称为 docBase,即 “文档根目录”当项目中不存在 src/main/webapp 目录时,docBase 为C盘临时目录,例如 C:\Users\Administrator\AppData\...原创 2017-10-15 23:12:49 · 5785 阅读 · 0 评论 -
HashMap、HashTable、ConcurrentHashMap
HashMap vs HashTable HashMap 的键和值都允许 null 值存在(当 key == null 时,哈希值为 0),而 HashTable 则不行HashMap 不加锁,所以效率高,非线程安全;HashTable 加锁,是线程安全的,但效率低ConcurrentHashMap vs HashTable ConcurrentHashMap 是加锁版的 HashMap...原创 2017-10-22 20:47:16 · 258 阅读 · 0 评论 -
JAVA 数据结构接口-对比分析
JAVA 推荐面向接口编程,这样在代码重构时,只需替换掉具体的实现类而不影响现有的代码,因此,当我们在考虑数据结构时,第一步就是要选出一个合适的接口JAVA 集合框架接口(继承体系)哈希接口(散列表结构) 集合接口 Map 介绍Map散列表(哈希表),通过 Key 对象的哈希值来决定 Value 存储位置,但判断 Key 时需要同时保证 hashCode(...原创 2018-01-07 22:21:19 · 1041 阅读 · 0 评论 -
Spring Session 整合 JWT Token
依赖库 pom.xml <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>1.3.1.RELEASE</version>原创 2017-12-07 12:04:24 · 5217 阅读 · 0 评论 -
解析 Shiro-Spring 过滤器全流程
对于Spring 集成 Shiro,一般要求配置一个如下的Filter(web.xml)<!-- The filter-name matches name of a 'shiroFilter' bean inside applicationContext.xml --><filter> <filter-name>shiroFilter</filter-name> <filter-c原创 2017-12-23 03:43:40 · 710 阅读 · 0 评论 -
源码解析 ThreadPoolExecutor JAVA1.8
1. 构造函数corePoolSize:池里维持的最小线程数,即使它们是空闲线程,也不会进行销毁maximumPoolSize:最大线程数keepAliveTime:当池里的线程数量超过了corePoolSize时,如果额外线程在keepAliveTime时间段内都未执行新任务,将被销毁 核心线程和额外线程是明确区分的,核心线程一般不会被销毁unit:keepAliveTime的时间单位原创 2017-12-22 00:04:34 · 268 阅读 · 0 评论 -
IDEA自动部署WEB项目至Tomcat-原理解析
IDEA 部署 WEB 项目的方式比较特别,它对每一套应用系统都新建了一份服务器配置,使得各个应用环境互不影响,且无需修改 Tomcat 原生配置 ${CATALINA_HOME}/conf/,保证了 IDEA 项目开发不影响服务器配置,减少服务器配置问题第一种,项目打包类型为 ResidentManager:war explodedIDEA 部署步骤: 注意 Artifact...原创 2017-11-19 23:10:38 · 3242 阅读 · 3 评论 -
SpringBoot 配置 WebSocket
原文如下 Spring Boot provides WebSockets auto-configuration for embedded Tomcat (8 and 7), Jetty 9 and Undertow. If you’re deploying a war file to a standalone container, Spring Boot assumes that the con原创 2017-11-19 22:47:41 · 1879 阅读 · 0 评论 -
源码解析 ReentrantLock
==基于 Java 1.8.0_91==相关类的继承体系1. 查看 ReentrantLock.lock() 源码 public void lock() { //默认创建使用的是非公平同步器:NonfairSync //可以通过构造函数参数来设置公平同步器:FairSync sync.lock(); }查看 NonfairSync.loc原创 2017-09-21 00:03:34 · 192 阅读 · 0 评论 -
ThreadLocal 类
ThreadLocal 类,当工作于多线程中的对象使用 ThreadLocal 维护变量时,ThreadLocal 为每个使用该变量的线程分配一个独立的变量副本,所以每一个线程都可以独立地改变自己的本地副本,而不会影响其他线程的副本Spring 通过 ThreadLocal 来使得非线程安全的资源(如 DataSource)变成了线程安全的资源,因而可作为 Singleton概括来说,对于多线程原创 2017-09-12 15:31:19 · 222 阅读 · 0 评论 -
源码解析 - JDBC
获取 JDBC 连接的代码如下//使用调用者的类加载器,加载全限定名指定的类Class.forName("com.mysql.jdbc.Driver");//通过已注册的 JDBC 驱动,根据参数获取数据库连接conn = DriverManager.getConnection(DB_URL,USER,PASS);查看 com.mysql.jdbc.Driver 的静态代码块(在类被加载时执行原创 2017-09-12 13:23:17 · 875 阅读 · 0 评论 -
源码解析 XmlWebApplicationContext
XmlWebApplicationContext 是使用最频繁的 WebApplicationContext,值得深入了解和学习它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationContext(根容器,同时也是 DispatcherServlet ...原创 2018-02-20 01:32:30 · 1794 阅读 · 0 评论