一、在spring中如何配容器的事務管理,相關的類有那些? Datasouce transactionManager userDao要注入 Datasouce Proxy代理 Target:userDao:代理對象(目標對象) transactionAttributes(那些方法需要事務處理) transactionManager(事務處理服務) 二、在spring中如何配代碼的事務管理? Datasouce transactionManager userDao要注入 Datasouce transactionManager 通過如下類實現 TransactionTemplate JdbcTemplate 三、在spring中有幾種事務管理,分別是什么? 代碼管理的事務處理 TransactonTemplate的execute方法中的內部類TransactionCallback中的doInTransaction方法中使用。 public void make() { TransactionTemplate jtm=new TransactionTemplate(this.getTransactionManager()); jtm.execute(new myClass1()); } public class myClass1 implements TransactionCallback { public Object doInTransaction(TransactionStatus trans) { JdbcTemplate jdbc=new JdbcTemplate(dataSource); jdbc.execute(”insert into customer(customerName) values(’b')”); jdbc.execute(”insert into customer(customerName) values(’b')”); return null; } } 容器管理的事務處理 五、spring的jdbc與傳統的jdbc有什么區別,其核心類有那些? Spring的jdbc:節省代碼,不管連接(Connection),不管事務、不管異常、不管關閉(con.close() ps.close ) JdbcTemplate(dataSource):增、刪、改、查 TransactionTemplate(transactionManager):進行事務處理 六、如何加入Spring到web框架中? 在web.xml中加入如下同容,在啟動web服務器時加載/WEB-INF/applicationContext.xml中的內容。 context org.springframework.web.context.ContextLoaderServlet 1 通過如下類得到ApplicationContext實例 WebApplicationContextUtils.getWebApplicationContext 七、Spring如何實現事件處理? 事件 Extends ApplicationEvent 監聽器 Implements ApplicationListener 事件源 Implements ApplicationContextAware 在applicationContext.xml中配置事件源、監聽器 先得到事件源,調用事件源的方法,通知監聽器。 八、如何在spring中實現國際化? 在applicationContext.xml加載一個bean message ? 在src目錄下建多個properties文件 ? 對于非英文的要用native2ascii -encoding gb2312 源 目轉化文件相關內容 ? 其命名格式是message_語言_國家。 ? 頁面中的中顯示提示信息,鍵名取鍵值。 ? 當給定國家,系統會自動加載對應的國家的properties信息。 ? 通過applictionContext.getMessage(“鍵名”,”參數”,”區域”)取出相關的信息。 九、spring的配置的主要標簽是什么?有什么作用? 十、spring與ejb2.0的事務管理比較的優缺點? 測試: Spring:pojo Ejb:二個接口一個類,一堆配置文件 事務類型 Spring:jdbc jta hibernate Ejb:jta 成本 Spring:普通容器(tomcat jboss) Ejb:weblogic jboss 開發的周期: Spring遠比ejb快. 十一、struts+spring面試題 1.struts Action是不是線程安全的?如果不是,有什么方式可以保證Action的線程安全?如果是,說明原因 2.MVC,分析一下struts是如何實現MVC的 3.struts中的幾個關鍵對象的作用(說說幾個關鍵對象的作用) 4.spring 說說AOP和IOC的概念以及在spring中是如何應用的 5.Hibernate有哪幾種查詢數據的方式 6.load()和get()的區別 回答: 1.Struts1 Action是單例模式并且必須是線程安全的,因為僅有Action的一個實例來處理所有的請求。單例策略限制了Struts1 Action能作的事,并且要在開發時特別小心。Action資源必須是線程安全的或同步的。 Struts2 Action對象為每一個請求產生一個實例,因此沒有線程安全問題。(實際上,servlet容器給每個請求產生許多可丟棄的對象,并且不會導致性能和垃圾回收問題) 2.struts是用一組類,servlet 和jsp規范實現mvc的 3.ActionFrom ActionServlet Action struts-config.xml 4.spring的核心就是IOC,通過指定對象的創建辦法,描述對象與服務之間的關系,而不生成對象 5.3種,hql 條件查詢() 原生sql 6.load()方法認為該數據一定存在,可以放心的使用代理來延時加載 ,如果使用過程中發現了問題,就拋出異常; get()方法一定要獲取到真實的數據,否則返回null 十二、Spring和Struts的區別? strusts:是一種基于MVC模式的一個web層的處理。 Spring:提供了通用的服務,ioc/di aop,關心的不僅僅web層,應當j2ee整體的一個服務,可以很容易融合不同的技術struts hibernate ibatis ejb remote springJDBC springMVC 十三、aop中的關鍵名詞有些那些,相互關系是什么? 攔截器: 代理 裝備(advice) 目標對象 關切點:條件 連接點:方法、屬性 十四、spring中的核心類有那些,各有什么作用? BeanFactory:產生一個新的實例,可以實現單例模式 BeanWrapper:提供統一的get及set方法 ApplicationContext:提供框架的實現,包括BeanFactory的所有功能 十五、Spring中ApplicationContext的作用是什么? beanFactory 國際化(getMesage) 資源管理:可以直接讀取一個文件的內容(getResource) 加入web框架中(加入一個servlet或監聽器) 事件處理 |
|