1. spring+hibernate的配置文件中的主要類有那些?如何配置?
在myeclipse中先加入spring環境再加入hibernate環境。
如果spring與hibernate結合在一起可以不需要hibernate.cfg.xml文件是否正確?
spring+hibernate的配置文件中的主要類有那些?如何配置?
dataSource
sessionFactory:hibernate.cfg.xml
transactionManager
userDao (extends HibernateDaoSupport)
sessionFactory
facade
proxy
sessionFactory
transactionManager
facade
2. 在spring中如何配代碼的事務管理?
Datasouce
transactionManager
userDao要註入
Datasouce
transactionManager
通過如下類實現
TransactionTemplate
JdbcTemplate
3. spring的jdbc與傳統的jdbc有什麼區別,其核心類有那些?
Spring的jdbc:節省代碼,不管連接(Connection),不管事務、不管異常、不管關閉(con.close() ps.close ) JdbcTemplate(dataSource):增、刪、改、查
TransactionTemplate(transactionManager):進行事務處理
4. 如何加入Spring到web框架中?
在web.xml中加入如下同容,在啟動web服務器時加載/WEB-INF/applicationContext.xml中的內容。
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
通過如下類得到ApplicationContext實例
WebApplicationContextUtils.getWebApplicationContext
5. spring中的核心類有那些,各有什麼作用?
BeanFactory:產生一個新的實例,可以實現單例模式
BeanWrapper:提供統一的get及set方法
ApplicationContext:提供框架的實現,包括BeanFactory的所有功能
6. aop中的關鍵名詞有些那些,相互關系是什麼?
攔截器: 代理,裝備(advice),目標對象,關切點:條件,連接點:方法、屬性
7. Spring和Struts的區別?
strusts:是一種基於MVC模式的一個web層的處理。
Spring:提供瞭通用的服務,ioc/di aop,關心的不僅僅web層,應當j2ee整體的一個服務,可以很容易融合不同的技術struts hibernate ibatis ejb remote springJDBC springMVC
9. 使用Spring有什麼好處
◆Spring能有效地組織你的中間層對象,無論你是否選擇使用瞭EJB。如果你僅僅使用瞭Struts或其他的包含瞭J2EE特有APIs的framework,你會發現Spring關註瞭遺留下的問題,。
◆Spring能消除在許多工程上對Singleton的過多使用。根據我的經驗,這是一個主要的問題,它減少瞭系統的可測試性和面向對象特性。
◆Spring能消除使用各種各樣格式的屬性定制文件的需要,在整個應用和工程中,可通過一種 一致的方法來進行配置。曾經感到迷惑,一個特定類要查找迷幻般的屬性關鍵字或系統屬性,為此不得不讀Javadoc乃至源編碼嗎?有瞭Spring,你可 很簡單地看到類的JavaBean屬性。倒置控制的使用(在下面討論)幫助完成這種簡化。
◆Spring能通過接口而不是類促進好的編程習慣,減少編程代價到幾乎為零。
◆Spring被設計為讓使用它創建的應用盡可能少的依賴於他的APIs。在Spring應用中的大多數業務對象沒有依賴於Spring。
◆使用Spring構建的應用程序易於單元測試。
◆Spring能使EJB的使用成為一個實現選擇,而不是應用架構的必然選擇。你能選擇用POJOs或local EJBs來實現業務接口,卻不會影響調用代碼。
◆Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適於許多web應用。例如,Spring能使用AOP提供聲明性事務而不通過使用EJB容器,如果你僅僅需要與單個的數據庫打交道,甚至不需要JTA實現。
■Spring為數據存取提供瞭一致的框架,不論是使用JDBC或O/R mapping產品(如Hibernate)。
Spring確實使你能通過最簡單可行的解決辦法解決你的問題。這些特性是有很大價值的。
總結起來,Spring有如下優點:
◆低侵入式設計,代碼污染極低
◆ 獨立於各種應用服務器,可以真正實現Write Once,Run Anywhere的承諾
◆Spring的DI機制降低瞭業務對象替換的復雜性
◆Spring並不完全依賴於Spring,開發者可自由選用Spring框架的部分或全部
10. Spring框架有哪幾部分組成?
☞ Spring 核心容器(Core):提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,她是工廠模式的實現。BeanFactory使用控制反轉(Ioc)模式將應用程序的配置和依賴性規范與實際的應用代碼程序分開。
☞ Spring AOP:通過配置管理特性,Spring AOP模塊直接面向方面的編程功能集成到瞭Spring框架中,所以可以很容易的使Spring框架管理的任何對象支持 AOP。Spring AOP模塊為基於Spring的應用程序中的對象提供瞭事務管理服務。通過使用Spring AOP,不用依賴於EJB組件,就可以將聲明性事務管理集成到應用程序中。
☞ Spring ORM:Spring框架集成瞭若幹ORM框架,從而提供瞭ORM的對象關系工具,其中包括 JDO、Hibernate、iBatis和TopLink。所有這些都遵從Spring的通用事務和DAO異常層結構。
☞ Spring DAO:JDBC DAO抽象層提供瞭有意義的異常層次的結構,可用該結構來管理異常處理和不同數據供應商拋出的異常錯誤信息。異常層次結構簡化瞭錯誤處理,並且大大的降低 瞭需要編寫的異常代碼數量(例如,打開和關系連接)。Spring DAO的面向JDBC的異常遵從通用的DAO異常層結構。
☞ Spring WEB:Web上下文模塊建立在上下文模塊(Context)的基礎之上,為基於Web服務的應用程序提供瞭上下文的服務。所以Spring框架支持 Jakarta Struts的集成。Web模塊還簡化瞭處理多部分請求及將請求參數綁定到域對象的工作。
☞ Spring上下文(Context):Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化校驗和調度功能。
☞ Spring MVC:Spring的MVC框架是一個全功能的構建Web應用程序的MVC實現。通過策略接口,MVC框架變成為高度可配置的,MVC容納的大量視圖技術,包括JSP、Velocity、Tiles、iText和Pol
11. 請你談談SSH整合?
Struts(表示層)+Spring(業務層)+Hibernate(持久層)
Struts:
Struts是一個表示層框架,主要作用是界面展示,接收請求,分發請求。
在MVC框架中,Struts屬於VC層次,負責界面表現,負責MVC關系的分發。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
Hibernate:
Hibernate是一個持久層框架,它隻負責與關系數據庫的操作。
Spring:
Spring是一個業務層框架,是一個整合的框架,能夠很好地黏合表示層與持久層。
12. 什麼是Web Service?
Web Service就是為瞭使原來各孤立的站點之間的信息能夠相互通信、共享而提出的一種接口。
使用的技術:
HTTP、XML、SOAP(簡單對象訪問協議)、WSDL
優點:
跨平臺、跨語言、跨系統
SOAP協議:
SOAP協議(Simple Object Access Protocal,簡單對象訪問協議)
http-à Tcp/ip>soap,soap 通過xml文件傳送信息
缺點:
(1).WebService使用瞭XML對數據封裝,會造成大量的數據要在網絡中傳輸。
(2).WebService規范沒有規定任何與實現相關的細節,包括對象模型、編程語言,這一點,它不如CORBA。
13. 如何進行Web性能優化?
1. 使用weblint或者其他HTML 檢查工具來檢查HTML內容是不是符合HTML 4.0規范,符合HTML 4.0規范的頁面會加載的更快。
2. 最小化Javascript和Style Sheets的使用,Javascript是不標準HTML內容的最大來源,雖然實現瞭很多非常炫的效果但是卻放緩瞭頁面加載的時間,Style Sheets是需要在頁面顯示之前單獨下載的,所以也會放緩頁面的加載速度。
3. 關閉DNS的反向解析,DNS反向解析會記錄客戶端的計算機名而不僅僅是IP地址, 這樣就增加消耗。
4. 使用統計工具來檢查你的web系統的性能瓶頸是出在DNS,網絡連接,內容大小或者是服務器端,這樣就可以從瓶頸處著手提高性能。
5. 使用簡單的servlet或者CGI, 在系統不需要的話使用分佈式程序反而會減低性能。
6. 加內存, 跟我們使用的電腦一樣,加內存往往是成本最低效果最好的提高性能的方法。要知道內存速度比硬盤速度要搞一個數量級的。
7. 合理的給你的數據庫加索引,當根據關鍵字進行全表查詢時,加索引會有效的提高查詢性能。
8. 最小化數據庫查詢,如果能把數據緩存到中間層或者servlet的話,just do it, 數據庫連接往往是系統的性能瓶頸。
9. 使用網絡工具檢查網絡丟包和重發, 斷斷續續的系統性能問題一般是因為網絡丟包或者幹擾。因為丟包和重新發送數據之間有一個時間間隔,這樣就會使系統變得緩慢。
10. 使用工具來實時監視網站的性能。
1. Struts的工作原理
在Struts中,用戶的請求一般以*.do作為請求服務名,所有的*.do請求均被指向ActionSevlet, ActionSevlet根據Struts-config.xml中的配置信息,將用戶請求封裝成一個指定名稱的FormBean,並將此 FormBean傳至指定名稱的ActionBean,由ActionBean完成相應的業務操作,如文件操作,數據庫操作等。每一個*.do均有對應的 FormBean名稱和ActionBean名稱,這些在Struts-config.xml中配置。
2. Struts優點與缺點
Struts是開源軟件,使開發者能更深入的瞭解其內部實現機制。
Struts 優點:業界"標準"(很多成功案例),學習資源豐富。
Struts的優點主要集中體現在兩個方面:Taglib和頁面導航。
a、利用Struts提供的taglib可以大大節約開發時間。
b、維護擴展比較方便。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對於後期的維護有著莫大的好處。
c、表現與邏輯分離
d、表單驗證解決瞭請求數據的驗證問題,增強瞭系統健壯性。
e、便於團隊開發
Struts缺點:a、大量的使用標簽,對於初學者難度較大。
b、ActionForms使用不便、無法進行單元測試(StrutsTestCase隻能用於集成)
3. Struts提供瞭幾個標簽庫?都是什麼標簽庫?
Struts提供瞭五個標簽庫,即:HTML、Bean、Logic、Template和Nested。 HTML 標簽 用來創建能夠和Struts 框架和其他相應的HTML 標簽交互的HTML 輸入表單
Bean 標簽 在訪問JavaBeans 及其屬性,以及定義一個新的bean 時使用
Logic 標簽 管理條件產生的輸出和對象集產生的循環
Template 標簽 隨著Tiles框架包的出現,此標記已開始減少使用
Nested 標簽 增強對其他的Struts 標簽的嵌套使用的能力
作者“銘記於心”