日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

《Spring3.0就这么简单》

發布時間:2023/12/2 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Spring3.0就这么简单》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一章 認識Spring

1、Spring提供的IOC容器,是Spring大殺器之一。容器將對象之間的依賴關系交給Spring進行控制,采用配制的方式對依賴關系進行描述,由Ioc容器負責依賴類之間的創建、拼接、管理、獲取工作

2、Spring提供的第二大殺器,就是對AOP面向切面編程的支持。

3、Spring Data讓對數據的訪問更加容易。

第二章 IOC

1、通過BeanFactory啟動IOC容器的時候,并不會初始化配置文件中的Bean,初始化動作發生在第一個調用的時候。對于單例的Bean來說,BeanFactory會緩存該實例,第二次調用的時候直接從緩存中獲取該bean。

2、ContextApplication在初始化應用上下文的時候就實例化所有的單例bean,因此啟動時間會比BeanFactory長,但是沒有第一次調用懲罰問題。

3、WebApplication是專門為Web而準備的,從WebApplication可以獲得ServletContext的引用,ServletContext是web應用的上下文。WebApplication的初始化方式和上述兩種Factory有所不同,因為需要ServletContext實例,所以必須在擁有web容器的前提下才能完成啟動工作。

Spring提供了兩種方式用于初始化WebApplicationContext,ServletContext監聽器、自啟動Servlet。其中只有Servlet2.3以上版本的Web容器才支持ServletContext監聽器方式初始化WebApplicationContext。具體如何配置,帶后文補充。。。。。

4、容器、配置信息、應用實現之間的關系,個人認為這張圖很能說明問題

5、采用util命名空間配置集合類的bean;采用p命名空間簡化配置

6、Bean的作用域

第五章Hibernate

1、Hibernate4建議使用與線程綁定的原聲CurrentSession,不再使用HibernateTemplate。

2、延遲加載的問題。

Hibernate允許對關聯屬性、對象進行延遲加載,但是必須保證延遲加載的操作限于同一個額 Hibernate Session 范圍之內。如果Service層返回一個啟用了延遲加載功能的領域對象給Web層,當Web層訪問到那些需要延遲加載的數據的時候,由于加載領域對象的Hibernate Session已經關閉,將導致延遲加載數據的訪問異常。

Spring為此專門提供了一個OpenSessionViewFilter過濾器,主要供您能就是讓每個請求過程綁定一個HibernateSession,即使最初的事務已經完成了,也可以在Web層進行延遲加載的操作。

OpenSessionViewFilter過濾器將Hibernate Session綁定到請求線程中,它將自動被Spring的事務管理器探測到。所以OpenSessionViewFilter適用于Service層使用HibernateTransactionManger或者JtaTransactionManger進行事務管理的環境,也可以用于非只讀事務的數據操作中。

要啟用這個過濾器,必須在web.xml中進行配置:

??? <filter>

?????? <filter-name>openSessionInViewFilter</filter-name>

?????? <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>

?????? <init-param> <param-name>singleSession</param-name>

?????? <param-value>true</param-value>

?????? </init-param>

??? </filter>

?????? <filter-mapping>

?????? <filter-name>openSessionInViewFilter</filter-name>

?????? <url-pattern>*.action</url-pattern>

?????? ?</filter-mapping>

補充一下,Spring針對Hibernate的非JPA實現用的是OpenSessionInViewFilter,如果采用Spring Data JPA,使用的是OpenEntityManagerInViewFilter

第7章SpringMVC

1、controller中,如果希望方法入參也添加到模型中,只需要在相應的入參前面使用@ModeAttribute

2、Spring MVC在調用方法前會創建一個隱含的模型對象,作為模型數據的存儲容器。如果處理方法的入參為Map或者Model類型(org.springframework.ui.Model,類似于Map,比Map更易用),SpringMVC會將隱含模型的應用傳遞給這些入參。于是開發者可以通過這個入參訪問到模型中的所有數據,也可以向模型中添加新的屬性數據。

3、Spring3.0有自己獨立的校驗框架,同時支持JSR303標準的校驗框架,但是本身并不提供JSR303的實現,可以包含HibernateValidatorJSR303的實現jar,供Spirng使用。如下:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.1.Final</version>
</dependency>

LoacalValidateorFactoryBean實現了Spirng的Validator接口,同時也實現了JSR303的Validator接口。只要在Spring容器中定義一個LocalValidatorFactoryBean即可。與此同時,Spring提供的標簽<mvc:annotation-driven/>會默認裝配好一個LocalValidatorFactoryBean,不用我們再單獨聲明bean。

4、校驗結果的返回

srpingMVC會將實施校驗的結果保存在被校驗入參對象之后的BindingResult對象或者Errors對象中,同時這些校驗結果也會保存在隱含模型中,可以在JSP頁面中通過<form:errors path="*">或者<form:errors path="userName" cssClass="errorClass">來顯示校驗錯誤信息。

轉載于:https://www.cnblogs.com/mingziday/p/4747404.html

總結

以上是生活随笔為你收集整理的《Spring3.0就这么简单》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。