Spring本質上是一個輕量級的集成框架,可用於用Java開發企業應用程序。前端
一些重要的Spring Framework模塊是:java
重要的註釋是:程序員
Bean是構成Spring應用程序主幹的對象。它們由Spring IoC容器管理。換句話說,bean是一個由Spring IoC容器實例化,組裝和管理的對象。面試
Spring bean中定義了五個範圍。spring
DispatcherServlet基本上是Spring MVC應用程序中的前端控制器,由於它加載了Spring bean配置文件並初始化全部已配置的bean。若是啓用了註釋,它還將掃描軟件包以配置任何使用@ Component,@ Controller,@ Repository或@Service註釋進行註釋的bean。數據庫
另外一方面,ContextLoaderListener是在Spring根目錄中啓動和關閉WebApplicationContext的偵聽器。它的一些重要功能包括將Application Context的生命週期與ServletContext的生命週期綁定在一塊兒,並自動建立ApplicationContext。編程
沒有。 | 構造函數注入 | setter注射 |
---|---|---|
1) | 無局部注入 | 部分注射 |
2) | 不覆蓋setter屬性 | 若是定義了構造函數,則重寫它們。 |
3) | 若是發生任何修改,則建立一個新實例 | 若是更改屬性值,則不會建立新實例 |
4) | 對於太多的屬性更好 | 更好的一些屬性。 |
自動裝配使程序員可以自動注入Bean。咱們不須要編寫顯式的注入邏輯。 讓咱們看看使用依賴注入來注入bean的代碼。spring-mvc
<bean id = 「 emp」 class = 「 com.javatpoint.Employee」 autowire = 「 byName」 />
自動裝配模式以下:安全
沒有。 | 模式 | 描述 |
---|---|---|
1) | 沒有 | 這是默認模式,這意味着未啓用自動裝配。 |
2) | 按名字 | 根據屬性名稱注入bean。它使用setter方法。 |
3) | 按類型 | 根據屬性類型注入bean。它使用setter方法。 |
4) | 構造函數 | 它使用構造函數注入bean |
Spring MVC Framework提供瞭如下方法來幫助咱們實現可靠的異常處理。session
咱們能夠在控制器類中定義異常處理程序方法。咱們所須要作的就是使用@ExceptionHandler註釋對這些方法進行註釋。
異常處理是一個跨領域的問題,Spring提供了@ControllerAdvice批註,咱們能夠將其與任何類一塊兒使用來定義全局異常處理程序。
對於通常的異常,大多數時候咱們提供靜態頁面。Spring Framework提供了HandlerExceptionResolver接口,咱們能夠經過該接口來建立全局異常處理程序。這種定義全局異常處理程序的其餘方法背後的緣由是,Spring框架還提供了默認實現類,咱們能夠在咱們的Spring bean配置文件中定義這些默認實現類,以得到Spring框架異常處理的好處。
我在項目中使用的一些Spring註釋是:
@Controller –用於Spring MVC項目中的控制器類。
@RequestMapping –用於在控制器處理程序方法中配置URI映射。這是一個很是重要的註釋,所以您應該閱讀Spring MVC RequestMapping註釋示例
@ResponseBody –用於發送對象做爲響應,一般用於發送XML或JSON數據做爲響應。
@PathVariable –用於將動態值從URI映射處處理程序方法參數。
@Autowired –用於自動裝配Spring bean中的依賴項。
@Qualifier –帶有@Autowired註釋,以免在存在多個bean類型的實例時形成混淆。
@Service –用於服務類。
@Scope –用於配置Spring bean的範圍。
@ Configuration,@ ComponentScan和@Bean –用於基於Java的配置。
AspectJ註釋,用於配置方面和建議,@ Aspect,@ Before,@ After,@ Around,@ Pointcut等。
若是您使用的是SessionFactory提供當前會話的Hibernate 3+,那麼咱們可使用Spring ORM模塊來集成Spring和Hibernate框架,那麼您應該避免使用HibernateTemplate或HibernateDaoSupport類,而最好使用帶有依賴項注入的DAO模式進行集成。
另外,Spring ORM還提供了對使用Spring聲明式事務管理的支持,所以您應該利用它,而不是使用休眠的樣板代碼進行事務管理。
Spring支持兩種類型的事務管理。他們是: