原创 Mysql海量數據存儲和解決方案之一—分佈式DB方案
1) 分佈式DB水平切分中用到的主要關鍵技術:分庫,分表,M-S,集羣,負載均衡 2) 需求分析:一個大型互聯網應用每天幾十億的PV對DB造成了相當高的負載,對系統的穩定性的擴展性帶來極大挑戰。 3) 現有解決方式:通過數據切分提高
原创 讓Apache Shiro保護你的應用
在嘗試保護你的應用時,你是否有過挫敗感?是否覺得現有的Java安全解決方案難以使用,只會讓你更糊塗?本文介紹的Apache Shiro,是一個不同尋常的Java安全框架,爲保護應用提供了簡單而強大的方法。本文還解釋了Apache Shi
原创 Spring contextConfigLocation
spring如何使用多個xml配置文件 1, 在web.xml中定義 contextConfigLocation參數.spring會使用這個參數加載.所有逗號分割的xml.如果沒有這個參數,spring默認加載web-inf/ap
原创 SiteMesh:一個優於Apache Tiles的Web頁面佈局、裝飾框架
一、SiteMesh項目簡介 OS(OpenSymphony)的SiteMesh是一個用來在JSP中實現頁面佈局和裝飾(layout and decoration)的框架組件,能夠幫助網站開發人員較容易實現頁面中動態內容和靜
原创 Spring中ClassPathXmlApplicationContext類的簡單使用
一、簡單的用ApplicationContext做測試的話,獲得Spring中定義的Bean實例(對象).可以用: ApplicationContext ac = new ClassPathXmlApplicationContext(
原创 MongoDB學習筆記(二) 通過samus驅動實現基本數據操作
傳統的關係數據庫一般由數據庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由(database)、集合(collection)、文檔對象(document)三個層次組成。MongoDB對於
原创 java權限管理與用戶角色權限設計
實現業務系統中的用戶權限管理 B/S系統中的權限比C/S中的更顯的重要,C/S系統因爲具有特殊的客戶端,所以訪問用戶的權限檢測可以通過客戶端實現或通過客戶端+服務器檢測實現,而B/S中,瀏覽器是每一臺計算機都已具備的,如果不建立一個完整
原创 catalina.home和catalina.base
catalina.home和catalina.base這兩個屬性僅在你需要安裝多個Tomcat實例而不想安裝多個軟件備份的時候使用,這樣能節省磁盤空
原创 java中break以及continue
在開發中,break和continue中斷語句用的比較多,下面來具體看看兩者的區別: break語句: 在我前面的博文裏面有提到switch語句
原创 軟件開發流程
軟件開發流程(Software development process)即軟件設計思路和方法的一般過程,包括設計軟件的功能和實現的算法和方法、軟件的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。
原创 如何使用Log4j
1、 Log4j是什麼?Log4j可以幫助調試(有時候debug是發揮不了作 用的)和分析,要下載和了解更詳細的內容,還是訪問其官方網站吧: http://jakarta.apache.org/log4j 。2、Log4j的概念 Log
原创 Mysql海量數據存儲和解決方案之二----Mysql分表查詢海量數據
前面已經講過 Mysql實現海量海量數據存儲查詢時,主要有幾個關鍵點,分表,分庫,集羣,M-S,負載均衡。 其中分庫分表是很重要的一點。分庫是如何將海量的Mysql數據放到不同的服務器中,分表則是在分庫基礎上對數據現進行邏輯上的劃分。
原创 java中的context
用於在 Request 操作中指定上下文對象的對象,上下文字符串在與請求調用一起被髮送之前,必須在該指定的上下文對象中進行解析。Context 對象包含 NamedValue 對象形式的屬性列表。這些屬性表示關於客戶端、環境或請求情形的信
原创 MongoDB學習筆記(六) MongoDB索引用法和效率分析
MongoDB中的索引其實類似於關係型數據庫,都是爲了提高查詢和排序的效率的,並且實現原理也基本一致。由於集合中的鍵(字段)可以是普通數據類型,也可以是子文檔。MongoDB可以在各種類型的鍵上創建索引。下面分別講解各種類型的索引的創建
原创 用Ibatis實現分庫分表
自從ibatis 2.0.9以後,ibatis支持動態表名。 以下爲用Map做參數的動態表名實現方法: 示例代碼如下: Sample : < select id ="getRighe" remapResults ="tr