精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

我要投稿 投訴建議

Spring面試試題

時間:2022-09-26 00:51:48 面試試題 我要投稿
  • 相關推薦

Spring面試試題匯總

  1. 你一般用spring做什么?

Spring面試試題匯總

  控制反轉IOC AOP

  2. spring中的哪個類的哪個方法可用于獲取bean

  3. spring是什么?根據(jù)你的理解詳細談談你的見解。

  目的:解決企業(yè)應用開發(fā)的復雜性

  功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應用功能

  范圍:任何Java應用

  簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

  輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴于Spring的特定類。

  控制反轉——Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。

  面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應用的業(yè)務邏輯與系統(tǒng)級服務(例如審計(auditing)和事務()管理)進行內聚性的開發(fā)。應用對象只實現(xiàn)它們應該做的——完成業(yè)務邏輯——僅此而已。它們并不負責(甚至是意識)其它的系統(tǒng)級關注點,例如日志或事務支持。

  容器——Spring包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關聯(lián)的。然而,Spring不應該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。

  框架——Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發(fā)留給了你。

  所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。

  4. 項目中如何體現(xiàn)Spring中的切面編程,距離說明。

  面向切面編程:主要是橫切一個關注點,將一個關注點模塊化成一個切面。在切面上聲明一個通知(Advice)和切入點(Pointcut); 通知: 是指在切面的某個特定的連接點(代表一個方法的執(zhí)行。通過聲明一個org.aspectj.lang.JoinPoint類型的參數(shù)可以使通知(Advice)的主體部分獲得連接點信息。)上執(zhí)行的動作。通知中定義了要插入的方法。切入點:切入點的內容是一個表達式,以描述需要在哪些對象的哪些方法上插入通知中定義的方法。

  項目中用到的Spring中的切面編程最多的地方:聲明式事務管理。

  a、定義一個事務管理器

  b、配置事務特性(相當于聲明通知。一般在業(yè)務層的類的一些方法上定義事務)

  c、配置哪些類的哪些方法需要配置事務(相當于切入點。一般是業(yè)務類的方法上)

  5. spring中可以用注入獲得屬性值,還有其他的方式嗎?

  讀取配置文件

  6. spring在項目中如何充當粘合劑

  1、在項目中利用spring的IOC(控制反轉或依賴注入),明確地定義組件接口(如UserDAO),開發(fā)者可以獨立開發(fā)各個組件, 然后根據(jù)組件間的依賴關系組裝(UserAction依賴于UserBiz,UserBiz依賴于UserDAO)運行,很好的把Struts(Action)和hibernate(DAO的實現(xiàn))結合起來了。

  2、spring的事務管理把hibernate對數(shù)據(jù)庫的操作進行了事務配置。

  7. spring的事務如何配置

  spring的聲明式事務配置:

  1.

  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

  /WEB-INF/classes/hibernate.cfg.xml

  2. 配置事務管理器

  class="org.springframework.orm.hibernate3.HibernateTransactionManager">

  3. 配置事務特性

  4. 配置哪些類的哪些方法配置事務

  isolation設定事務的隔離級別,事務管理器根據(jù)它來控制另外一個事務可以看到本事務內的哪些數(shù)據(jù)。

  定義的5個不同的事務隔離級別:

  DEFAULT:默認的隔離級別,使用數(shù)據(jù)庫默認的事務隔離級別

  READ_COMMITTED:保證一個事務修改的數(shù)據(jù)提交后才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數(shù)據(jù)。這種事務隔離級別可以避免臟讀出現(xiàn),但是可能會出現(xiàn)不可重復讀和幻像讀。

  READ_UNCOMMITTED:這是事務最低的隔離級別,它充許別外一個事務可以看到這個事務未提交的數(shù)據(jù)。這種隔離級別會產生臟讀,不可重復讀和幻像讀。

  REPEATABLE_READ:這種事務隔離級別可以防止臟讀,不可重復讀。但是可能出現(xiàn)幻像讀。它除了保證一個事務不能讀取另一個事務未提交的數(shù)據(jù)外,還保證了避免不可重復讀。

  SERIALIZABLE:這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執(zhí)行。除了防止臟讀,不可重復讀外,還避免了幻像讀。

  propagation定義了7個事務傳播行為

  REQUIRED: 如果存在一個事務,則支持當前事務。如果沒有事務則開啟一個新的事務。

  SUPPORTS: 如果存在一個事務,支持當前事務。如果沒有事務,則非事務的執(zhí)行。但是對于事務同步的事務管理器,SUPPORTS與不使用事務有少許不同。

  REQUIRES_NEW 總是開啟一個新的事務。如果一個事務已經(jīng)存在,則將這個存在的事務掛起。

  NOT_SUPPORTED 總是非事務地執(zhí)行,并掛起任何存在的事務。

  NEVER 總是非事務地執(zhí)行,如果存在一個活動事務,則拋出異常

  NESTED:如果一個活動的事務存在,則運行在一個嵌套的事務中. 如果沒有活動事務, 則按TransactionDefinition.PROPAGATION_REQUIRED 屬性執(zhí)行。

  嵌套事務一個非常重要的概念就是內層事務依賴于外層事務。外層事務失敗時,會回滾內層事務所做的動作。而內層事務操作失敗并不會引起外層事務的回滾。

  REQUIRED應該是我們首先的事務傳播行為。它能夠滿足我們大多數(shù)的事務需求。

  8. transaction有那幾種實現(xiàn)(事務處理)(Spring)

  在Spring中,事務處理主要有兩種方式

  (1) 代碼控制事務

  在程序中引入新的模版類,這個類封裝了事務管理的功能

  (2) 參數(shù)配置控制事務,在Application-Context.xml增加一個事務代理(UserDAOProxy)配置

  2. IBATIS中的事物屬性怎么配置

  SQL MAP XML配置文件中的transactionManager