原创 tomcat——生命週期管理機制

Catalina由多個組件組成,當Catalina啓動的時候,這些組件也會啓動。當Catalina停止的時候,這些組件也必須有機會被清除。保持組件啓動和停止一致的機制通過實現org.apache.catalina.Lifecycle接口來

原创 Spring——bean的加載

本文主要介紹從Spring中獲取一個java類的對象的大致流程 。  ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classp

原创 spring-配置文件的讀取和解析

簡介 Spring的配置文件是我們使用其功能的開始,本文旨在理清Spring在對配置文件的讀取和解析的關鍵節點。 因爲在讀源碼的時候很容易陷入對其中的細枝末節的糾結,而忘了我們本來的目的是爲了瞭解框架本身的架構和原理而非對編程中的奇淫巧技

原创 tomcat——容器

什麼是容器 在Tomcat中用Container接口表示容器 , 其作用是處理接收到的客戶端請求並返回相應的結果。 如圖,Container有四個子接口:  Engine : 整個Tomcat的Servlet引擎 ,  對應 Serv

原创 tomcat——簡單的Web服務器和Servlet容器

一般的Web服務器的處理過程 : 以HTTP爲例 ,當服務器接收到客戶端請求的時候會經歷如上圖的過程 讀取輸入流進行解碼進行業務處理對結果進行編碼發送響應到客戶端 在JAVA中一般用 Socket代表客戶端  , ServerSoc

原创 git的操作

1. 修改打開git shell的起始目錄,不需要每次打開都cd到指定目錄 右鍵git shell -> 屬性  ->  修改目標爲 path\tp\AppData\Local\GitHub\GitHub.appref-ms --open

原创 HotSpot 調試環境搭建

環境 :和《HotSpot實戰》裏的一致 源代碼版本 : OpenJDK7,分支代號b147 編譯依賴的JDK : jdk-6u35-linux-x64.bin  ,在Oracle官網下的話要註冊一個Oracle帳號 操作系統: Ubun

原创 JMM——volatile與內存屏障

爲了實現volatile內存語義,JMM會分別限制編譯器重排序和處理器重排序 1.當第一個操作爲普通的讀或寫時,如果第二個操作爲volatile寫,則編譯器不能重排序這兩個操作(1,3) 2.當第一個操作是volatile讀時,不管

原创 selenium2.53的一些實踐

Selenium是一個自動化測試工具,可以模擬用戶操作瀏覽器的行爲,故也可以用於對一些需要執行JS腳本的網站的爬蟲的開發 一、Linux(Centos)下命令行環境的搭建   1.1 Xvfb的安裝 由於命令行下沒有圖形界面,這樣就需要

原创 Selenium自定義配置的策略

1. 希望能對WebDriver的超時(HttpClient)自定義配置 關鍵的類: HttpCommandExecutor、HttpClientFactory 顧名思義,HttpClientFactory可以生成HttpClient用於