一、spring
1.ContextLoaderListener
它作用就是啟動Web容器時,自動裝配ApplicationContext的配置信息。因為它實現了ServletContextListener這個接口,在web.xml配置這個監聽器,啟動容器時,就會默認執行它實現的方法。在ContextLoaderListener中關聯了ContextLoader這個類,所以整個加載配置過程由ContextLoader來完成。ContextLoader創建的是 XmlWebApplicationContext這樣一個類,它實現的接口是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext->BeanFactory這樣一來spring中的所有bean都由這個類來創建。如果在web.xml中不寫任何參數配置信息,默認的路徑是"/WEB-INF/applicationContext.xml,在WEB-INF目錄下創建的xml文件的名稱必須是applicationContext.xml。如果是要自定義文件名可以在web.xml里加入contextConfigLocation這個context參數:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/*.xml</param-value>
</context-param>
2.default-autowire
在spring容器內拼湊bean叫作裝配。裝配bean的時候,你是在告訴容器,需要哪些bean,以及容器如何使用依賴注入將它們配合在一起。而default-autowire設置了bean的默認裝配方式。
我們常常使用<ref>標簽為JavaBean注入它依賴的對象。但是對于一個大型的系統,這個操作將會耗費我們大量的資源,我們不得不花費大量的時間和精力用于創建和維護系統中的<ref>標簽。我們可以通過指定autowire來讓容器為受管JavaBean自動注入依賴對象。
byName:通過屬性的名字的方式查找JavaBean依賴的對象并為其注入。比如說類UserAction有個屬性userService,Spring IoC容器會在配置文件中查找id/name屬性為userService的bean,然后使用Seter方法為其注入。
注意:在配置bean時,<bean>標簽中Autowire屬性的優先級比其上級標簽<beans/>高,即是說,如果在上級標簽中定義default-autowire屬性為byName,而在<bean>中定義為byType時,Spring IoC容器會優先使用<bean>標簽的配置。
3.default-lazy-init
加載spring bean時,默認采用的延遲策略。
二、Hibernate
1.load和get
a.如果未能發現符合條件的記錄,get方法返回null,而load方法會拋出一個 ObjectNotFoundException。
b.Load方法可返回實體的代理類實例,而get方法永遠直接返回實體類。
c.load方法可以充分利用內部緩存和二級緩存中的現有數據,而get方法則僅僅在內部緩存中進行數據查找,如沒有發現對應數據,將越過二級緩存,直接調用SQL完成數據讀取。
2.對象的三種狀態
Hibernate的對象有3種狀態,分別為:瞬時態(Transient)、 持久態(Persistent)、脫管態(Detached)。
瞬時態:
由new命令開辟內存空間的java對象,
如:Person person = new Person("xxx", "xx");
瞬時對象在內存孤立存在,不和數據庫的數據有任何關聯關系,在Hibernate中,可通過session的save()或saveOrUpdate()方法將瞬時對象與數據庫相關聯,并將數據對應的插入數據庫中,此時該瞬時對象轉變成持久化對象。
持久態:
處于該狀態的對象在數據庫中具有對應的記錄,并擁有一個持久化標識。如果是用hibernate的delete()方法,對應的持久對象就變成瞬時對象。
當一個session執行close()或clear()、evict(po)之后,持久對象變成脫管對象,此時持久對象會變成脫管對象,此時該對象雖然具有數據庫識別值,但它已不在HIbernate持久層的管理之下。
持久對象具有如下特點:
1. 和session實例關聯;
2. 在數據庫中有與之關聯的記錄。
脫管態:
當與某持久對象關聯的session被關閉后,該持久對象轉變為脫管對象。
1. 本質上與瞬時對象相同,在沒有任何變量引用它時,JVM會在適當的時候將它回收;
2. 比瞬時對象多了一個數據庫記錄標識值。
2.名詞解釋
a.persist把一個瞬態的實例持久化,但是并"不保證"標識符(identifier主鍵對應的屬性)被立刻填入到持久化實例中,標識符的填入可能被推遲到flush的時候。
b.clear完整的清除session緩存
c.evcit(obj)把某個持久化對象從session的緩存中清空。
d.persist只能持久化一個瞬時態的對象,
三、java
1.格式化日期
SimpleDateFormat format = new SimpleDateFormat("yyyy年M月d日");
format.format(date);
用一個M、d則到月份日期為10一下時,只顯示一位,避免出現01月02日的情況。
年可以用四位也可以用二位。
2.JDBC操作
a.連接數據庫:
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(url, userName, password);
Statement stmt = conn .getStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getInt("userId"));
System.out.println(rs.getString("userName"));
}
posted on 2009-04-03 13:14
楊愛友 閱讀(268)
評論(0) 編輯 收藏 所屬分類:
java相關技術