之後建立常量有三個名字:Constant SystemParas StaticValuejava
上限或者下限命名 max_ min_web
包含的範圍命名 first lastspring
包含/排除範圍命名 begin endsql
JAVA中間件:數據庫
1>遠程過程調用和對象訪問中間件:主要解決分佈式環境下應用的互相訪問問題,這也是支撐咱們介紹應用服務化的基礎。json
2>消息中間件:解決應用之間的消息傳遞、解耦、異步的問題。瀏覽器
3>數據訪問中間件:主要解決應用訪問數據庫的共性問題的組件。網絡
SSH小問題集錦:app
ByteArrayHttpMessageConverter: 負責讀取二進制格式的數據和寫出二進制格式的數據;
StringHttpMessageConverter: 負責讀取字符串格式的數據和寫出二進制格式的數據;
MappingJacksonHttpMessageConverter: 負責讀取和寫入json格式的數據;
ResourceHttpMessageConverter:負責讀取資源文件和寫出資源文件數據;
FormHttpMessageConverter: 負責讀取form提交的數據(能讀取的數據格式爲 application/x-www-form-urlencoded,不能讀取multipart/form-data格式數據);異步
負責寫入application/x-www-from-urlencoded和multipart/form-data格式的數據;
spring.factories文件裏每個xxxAutoConfiguration文件通常都會有下面的條件註解:
@ConditionalOnBean:當容器裏有指定Bean的條件下(僅僅在當前上下文中存在某個對象時,纔會實例化一個Bean)
@ConditionalOnClass:當類路徑下有指定類的條件下(某個class位於類路徑上,纔會實例化一個Bean)
@ConditionalOnExpression:基於SpEL表達式做爲判斷條件(當表達式爲true的時候,纔會實例化一個Bean)
@ConditionalOnJava:基於JV版本做爲判斷條件
@ConditionalOnJndi:在JNDI存在的條件下差在指定的位置
@ConditionalOnMissingBean:當容器裏沒有指定Bean的狀況下(僅僅在當前上下文中不存在某個對象時,纔會實例化一個Bean)
@ConditionalOnMissingClass:當類路徑下沒有指定類的條件下(某個class類路徑上不存在的時候,纔會實例化一個Bean)
@ConditionalOnNotWebApplication:當前項目不是Web項目的條件下(不是web應用)
@ConditionalOnProperty:指定的屬性是否有指定的值
@ConditionalOnResource:類路徑是否有指定的值
@ConditionalOnSingleCandidate:當指定Bean在容器中只有一個,或者雖然有多個可是指定首選Bean
@ConditionalOnWebApplication:當前項目是Web項目的條件下。
上面@ConditionalOnXXX都是組合@Conditional元註解,使用了不一樣的條件Condition
hosts切換不能當即生效緣由:
發現平常開發/測試 中須要頻繁切換hosts,嘗試了HostAdmin、SwitchHosts!, HostManager等工具,但都不滿意, 他們都有一個很大的問題:切換後不能當即生效,
須要重啓瀏覽器或者手動斷開sockets纔會生效。 這個 問題對我形成了很大的困擾, 由於平常工做中我會打開不少個tab,而重啓瀏覽器意味着這些tab我都找不回來了;
而手動斷開sockets, 至關繁瑣,有時候每每由於忘了手動去斷開致使發現了不少"bug", 經過觀察,發現瀏覽器不能當即生效是由於不少服務端爲了性能使用了TCP複用,
當hosts文件 被修改後,接着刷新瀏覽器頁面,此時瀏覽器做爲客戶端繼續重用以前的TCP鏈接, 所以沒法生效。
瞭解緣由後解決方案就比較簡單了:我只要在切換後斷開相應的TCP鏈接便可:一、獲取當前系統全部進程信息 二、獲取當前系統全部的TCP鏈接 三、根據PID斷開 某些TCP鏈接。