傳智播客bbs項目,在Properties文件中配置BeanFactory

        今天繼續學習bbs項目,和學基礎知識太不一樣了,遇到太多的問題,湯老師經驗豐富,跟他學了不少排錯方法技巧。看湯老師解決異常的方法,實際上遇到的異常都應該能夠自行解決的,只是有有時候長時間解決不了就急了,思路也就亂了。主要原因還是經驗,踏實學吧,對今天遇到的比較重要的知識,總結一下。


     BeanFactory   bean工廠,用於管理bean,可以把bean進行命名用=連
接它的完整路徑存放在.properties文件中,然後
1.通過輸入流讀取.properties文件的內容,
2.調用Properties類的load()方法按行從輸入流中讀取屬性列表(鍵和元
素對)。
3,提出bean類名,使用反射獲得類的實例,放到map中,使用
beanName作爲key,beanObject爲value。
配置文件中定義格式:
beanName = beanClassName
方法如下
private static Map<String, Object> beans = new HashMap<String,

Object>();
public static void initBeans(String properties) {
     Properties props = new Properties();
     InputStream inStream = null;
     try {
         inStream =BeanFactory.class.getClassLoader
       ().getResourceAsStream(properties);
 props.load(inStream);
          } catch (Exception e) {
 throw new RuntimeException(e);
           } finally {
    if (inStream != null) {
       try {
  inStream.close();
            } catch (IOException e) {
               e.printStackTrace();
            }
        }
              }

      for (Object key : props.keySet()) {
           String beanName = (String) key;
           String className = props.getProperty(beanName);
           // 使用反射生成實例
           try {
    Object bean = Class.forName(className).newInstance();
    beans.put(beanName, bean);
    } catch (Exception e) {
       throw new RuntimeException(e);
 }
       }

}
最後提供一個用於在其他地方獲取bean的方法

public Object getBean(String beanName) {
  return beans.get(beanName);
 }

其它地方獲取bean使用:getBean(beanName);

 

md5加密算法
網站會員註冊都要有用戶名和密碼,爲了防止有些人可以進入數據庫查
看用戶的密碼,要首先對密碼進行MD5加密再存入數據庫。md5加密算法用於對一段信息進行不可逆的變換運算,產生一個128比特位的數字摘要。實際項目中的密碼都是進行加密後存入數據庫的。在對用戶的密碼進行加密時不能採用可逆的加密算法,因爲可逆算法加密後的結果可以很容易解密,不能採用可逆的算法。實際項目中一般都採用md5算法對用戶註冊的密碼進行加密,即使得到了加密後的結果,也無法根據這個結果得到用戶的密碼,這樣就不用擔心可以進入數據庫的人獲取用戶的密碼信息了。在用戶註冊以後進行登錄時,系統對用戶輸入的密碼也進行md5運算,將結果與數據庫中存在的數據進行比較,如果兩個數據相等,則說明用戶輸入的密碼正確,允許等錄,否則登錄失敗。

 

   jdk提供了一個java.security.MessageDigest類,程序可以通過這個類調

用md5和sha算法來產生數字摘要。首先調用MessageDigest類的getInstance靜態方法獲得某個算法的MessageDigest實例對象,然後調用MessageDigest實例對象的update方法傳遞要進行數字摘要運算的數據源,數據源可以通過多次調用update方法進行累加,最後調用MessageDigest實例對象的digest方法產生數字摘要。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章