1. 程式人生 > >【彙總】Spring 框架專題

【彙總】Spring 框架專題

1 Spring框架

1.1 Spring框架

    Spring框架是一個分層架構,由7個定義良好的模組組成。Spring 模組構建在核心容器之上,核心容器定義了建立、配置和管理 bean 的方式,如圖1所示。


圖1. Spring 框架的7個模組

    組成Spring框架的每個模組(或元件)都可以單獨存在,或者與其他一個或多個模組聯合實現。每個模組的功能如下:

核心容器:核心容器提供Spring框架的基本功能。核心容器的主要元件是BeanFactory,它是工廠模式的實現。BeanFactory使用控制反轉(IOC)模式將應用程式的配置和依賴性規範與實際的應用程式程式碼分開。

Spring上下文

: Spring上下文是一個配置檔案,向 Spring 框架提供上下文資訊。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和排程功能。

Spring AOP:通過配置管理特性,Spring AOP 模組直接將面向方面的程式設計功能整合到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何物件支援 AOP。Spring AOP 模組為基於 Spring 的應用程式中的物件提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 元件,就可以將宣告性事務管理整合到應用程式中。

Spring DAO:JDBC DAO抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商丟擲的錯誤訊息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常程式碼數量(例如開啟和關閉連線)。Spring DAO的面向JDBC的異常遵從通用的DAO異常層次結構。

Spring ORM: Spring框架插入了若干個ORM框架,從而提供了ORM的物件關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。

Spring Web 模組:Web 上下文模組建立在應用程式上下文模組之上,為基於 Web 的應用程式提供了上下文。所以,Spring 框架支援與 Jakarta Struts 的整合。Web 模組還簡化了處理多部分請求以及將請求引數繫結到域物件的工作。

Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程式的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量檢視技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。

    Spring框架的功能可以用在任何 J2EE 伺服器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支援不繫結到特定 J2EE 服務的可重用業務和資料訪問物件。毫無疑問,這樣的物件可以在不同 J2EE 環境 (Web 或 EJB)、獨立應用程式、測試環境之間重用。

1.2 IOC 和 AOP

    控制反轉模式(也稱作依賴性介入)的基本概念是:不建立物件,但是描述建立它們的方式。在程式碼中不直接與物件和服務連線,但在配置檔案中描述哪一個元件需要哪一項服務。容器(在 Spring 框架中是 IOC 容器)負責將這些聯絡在一起。

    在典型的 IOC 場景中,容器建立了所有物件,並設定必要的屬性將它們連線在一起,決定什麼時間呼叫方法。下表列出了 IOC 的一個實現模式。


Spring框架的 IOC 容器採用型別 2 和型別3實現。

1.2.1 面向切方的程式設計

    面向切面的程式設計,即AOP,是一種程式設計技術,它允許程式設計師對橫切關注點或橫切典型的職責分界線的行為(例如日誌和事務管理)進行模組化。AOP的核心構造是切面,它將那些影響多個類的行為封裝到可重用的模組中。

    AOP和IOC是補充性的技術,它們都運用模組化方式解決企業應用程式開發中的複雜問題。在典型的面向物件開發方式中,可能要將日誌記錄語句放在所有方法和Java類中才能實現日誌功能。在AOP方式中,可以反過來將日誌服務模組化,並以宣告的方式將它們應用到需要日誌的元件上。當然,優勢就是Java類不需要知道日誌服務的存在,也不需要考慮相關的程式碼。所以,用Spring AOP編寫的應用程式程式碼是鬆散耦合的。

    AOP的功能完全整合到了Spring事務管理、日誌和其他各種特性的上下文中。

1.3 IOC容器

    Spring設計的核心是 org.springframework.beans 包,它的設計目標是與 JavaBean 元件一起使用。這個包通常不是由使用者直接使用,而是由伺服器將其用作其他多數功能的底層中介。下一個最高階抽象是  BeanFactory 介面,它是工廠設計模式的實現,允許通過名稱建立和檢索物件。BeanFactory 也可以管理物件之間的關係。

    BeanFactory 支援兩個物件模型。

·       單例 模型提供了具有特定名稱的物件的共享例項,可以在查詢時對其進行檢索。Singleton 是預設的也是最常用的物件模型。對於無狀態服務物件很理想。

·       原型 模型確保每次檢索都會建立單獨的物件。在每個使用者都需要自己的物件時,原型模型最適合。

    bean工廠的概念是Spring作為IOC容器的基礎。IOC將處理事情的責任從應用程式程式碼轉移到框架。正如我將在下一個示例中演示的那樣,Spring框架使用JavaBean屬性和配置資料來指出必須設定的依賴關係。

1.3.1 BeanFactory 介面

    因為 org.springframework.beans.factory.BeanFactory 是一個簡單介面,所以可以針對各種底層儲存方法實現。最常用的 BeanFactory 定義是 XmlBeanFactory,它根據 XML 檔案中的定義裝入 bean,如清單1所示。

    清單1.XmlBeanFactory

    BeanFactory factory = new XMLBeanFactory(new FileInputSteam("mybean.xml"));

    在XML檔案中定義的Bean是被懶載入的,這意味在需要bean之前,bean本身不會被初始化。要從BeanFactory檢索bean,只需呼叫getBean()方法,傳入將要檢索的 bean 的名稱即可,如清單2所示。

    清單2.getBean()

    MyBean mybean = (MyBean) factory.getBean("mybean");

    每個 bean 的定義都可以是 POJO (用類名和 JavaBean 初始化屬性定義)或 FactoryBean。FactoryBean 介面為使用 Spring 框架構建的應用程式添加了一個間接的級別。

1.4 IOC示例

    理解控制反轉最簡單的方式就是看它的實際應用。在對由三部分組成的 Spring 系列 的第 1 部分進行總結時,我使用了一個示例,演示瞭如何通過 Spring IOC容器注入應用程式的依賴關係(而不是將它們構建進來)。

    我用開啟線上信用帳戶的用例作為起點。對於該實現,開啟信用帳戶要求使用者與以下服務進行互動:

·       信用級別評定服務,查詢使用者的信用歷史資訊。

·      遠端資訊連結服務,插入客戶資訊,將客戶資訊與信用卡和銀行資訊連線起來,以進行自動借記(如果需要的話)。

·     電子郵件服務,向用戶傳送有關信用卡狀態的電子郵件。

1.5  三個介面

    對於這個示例,我假設服務已經存在,理想的情況是用鬆散耦合的方式把它們整合在一起。以下清單顯示了三個服務的應用程式介面。

    清單3. CreditRatingInterface

public interface CreditRatingInterface {

   public boolean getUserCreditHistoryInformation(ICustomer iCustomer);

}

    清單 3 所示的信用級別評定介面提供了信用歷史資訊。它需要一個包含客戶資訊的 Customer 物件。該介面的實現是由 CreditRating 類提供的。

    清單4.CreditLinkingInterface

public interface CreditLinkingInterface {

        public  String getUrl();

        public  void setUrl(String url);

        public  void linkCreditBankAccount() throws Exception ;

}

    信用連結介面將信用歷史資訊與銀行資訊(如果需要的話)連線在一起,並插入使用者的信用卡資訊。信用連結介面是一個遠端服務,它的查詢是通過 getUrl() 方法進行的。URL 由 Spring 框架的 bean 配置機制設定,我稍後會討論它。該介面的實現是由 CreditLinking 類提供的。

    清單5.EmailInterface

public  interface EmailInterface {

      public  void sendEmail(ICustomer iCustomer);

      public  String getFromEmail();

      public  void setFromEmail(String fromEmail) ;

      public String getPassword();

      public  void setPassword(String password) ;

      public  String getSmtpHost() ;

      public void setSmtpHost(String smtpHost);

      public  String getUserId() ;

      public  void setUserId(String userId);

   }

    EmailInterface 負責向客戶傳送關於客戶信用卡狀態的電子郵件。郵件配置引數(例如 SMPT 主機、使用者名稱、口令)由前面提到的 bean 配置機制設定。Email 類提供了該介面的實現。

1.6  Spring 使其保持鬆散

    這些介面就位之後,接下來要考慮的就是如何用鬆散耦合方式將它們整合在一起。在 清單 6 中可以看到信用卡帳戶用例的實現。

    注意,所有的 setter 方法都是由 Spring 的配置 bean 實現的。所有的依賴關係(也就是三個介面)都可以由 Spring 框架用這些 bean 注入。createCreditCardAccount() 方法會用服務去執行其餘實現。在 清單 7 中可以看到 Spring 的配置檔案。我用箭頭突出了這些定義。 

1.7   執行應用程式

    要執行示例應用程式,首先必須 下載 Spring 框架 及其所有依賴檔案。接下來,將框架釋放到(比如說)磁碟 c:\,這會建立 C:\spring-framework-1.2-rc2 (適用於當前發行版本) 這樣的資料夾。在繼續後面的操作之前,還必須下載和釋放 Apache Ant

    接下來,將原始碼釋放到資料夾,例如 c:\ 盤,然後建立 SpringProject。將 Spring 庫(即 C:\spring-framework-1.2-rc2\dist下的 spring.jar 和 C:\spring-framework-1.2-rc2\lib\jakarta-commons 下的  commons-logging.jar)複製到 SpringProject\lib 資料夾中。完成這些工作之後,就有了必需的構建依賴關係集。

    開啟命令提示符,將當前目錄切換到 SpringProject,在命令提示符中輸入以下命令:build。 

    這會構建並執行 CreateCreditAccountClient 類,類的執行將建立 Customer 類物件並填充它,還會呼叫 CreateCreditCardAccount 類建立並連結信用卡帳戶。CreateCreditAccountClient 還會通過 ClassPathXmlApplicationContext 裝入 Spring 配置檔案。裝入 bean 之後,就可以通過 getBean() 方法訪問它們了,如清單 8 所示。

    清單 8. 裝入 Spring 配置檔案

ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] {

     "springexample-creditaccount.xml"

 });

CreateCreditCardAccountInterface  creditCardAccount = (CreateCreditCardAccountInterface)

    appContext.getBean("createCreditCard");

1.8 結束語

    在這篇由三部分組成的 Spring 系列 的第一篇文章中,我介紹了 Spring 框架的基礎。我從討論組成 Spring 分層架構的 7 個模組開始,然後深入介紹了其中兩個模組:Spring AOP 和 IOC 容器。

    由於學習的最佳方法是實踐,所以我用一個工作示例介紹了 IOC 模式(像 Spring 的 IOC 容器實現的那樣)如何用鬆散耦合的方式將分散的系統整合在一起。在這個示例中可以看到,將依賴關係或服務注入工作中的信用卡帳戶應用程式,要比從頭開始構建它們容易得多。

    請繼續關注這一系列的下一篇文章,我將在這裡學習的知識基礎上,介紹 Spring AOP模組如何在企業應用程式中提供持久支援,並讓您開始瞭解 Spring MVC 模組和相關外掛。

2 Spring AOP與Hibernate

2.1  Spring AOP

    軟體系統通常由多個元件構成,每個元件負責一個特定的功能領域。但是,這些元件也經常承擔它們的核心功能之外的額外責任。系統服務(例如日誌、事務管理和安全性)經常發現自己跑到了別的元件的領域裡,而這些元件的核心職責是其他事情。結果就是所謂的“程式碼糾纏”,或者更簡單點兒說“一團糟”。面向方面程式設計是一種試圖解決這個問題的程式設計技術,它把關注點的隔離提升為核心的程式設計概念。

    使用 AOP 時,仍然是在一個地方定義系統的公共功能,但是可以宣告性地定義 如何 和 在哪裡 應用這個功能。如果對橫切關注點(例如日誌和事務管理)進行了模組化,那麼不用修改每個單獨的類,就可以向程式碼中新增新特性。這類模組化的關注點稱作 方面

    以一個企業應用程式為例。這類應用程式通常要求類似於安全性和事務支援的服務。顯然,可以把這些服務的支援直接編寫到要求服務的每個類當中,但是更希望能夠不必為大量事務性上下文編寫同樣的事務處理程式碼。如果使用 Spring AOP進行事務處理,那麼可以宣告性地安排適當的方法呼叫,而不必逐個安排。

    Spring AOP提供了幾個方面,可以為 JavaBean 宣告事務。例如,TransactionProxyFactoryBean 是個方便的代理類,能夠攔截對現有類的方法呼叫,並把事務上下文應用到事務 bean。在下面的示例中會看到這個類的實際應用。

2.2   Hibernate

    Spring框架提供了對 Hibernate、JDO 和 iBATIS SQL

    Maps 的整合支援。Spring 對 Hibernate 的支援是第一級的,整合了許多 IOC 的方便特性,解決了許多典型的 Hibernate 整合問題。框架對 Hibernate 的支援符合 Spring 通用的事務和資料訪問物件(DAO)異常層次結構。

    Spring為使用選擇的 OR 對映層來建立資料訪問應用程式提供了支援。因為所有東西都設計成一組可重用 JavaBean,所以不管選擇什麼技術,都能以庫的格式訪問大多數 Spring 的 OR 對映支援。 ApplicationContext 或 BeanFactory 內部的 OR 對映的好處是簡化了配置和部署。

    Hibernate是 Java 平臺上一個功能全面的、開源的 OR 對映框架。Hibernate 支援開發符合常規 Java 理念的永續性類 —— 包括關聯、繼承、多型、複合以及 Java 集合框架。Hibernate 查詢語言(HQL)被設計成 SQL 的一個微型面向物件擴充套件,它是物件和關係世界之間的橋樑。Hibernate 也支援用原始 SQL 或基於 Java 的標準和示例查詢表達查詢。Hibernate 使用 XML(*.hbm.xml)檔案把 Java 類對映到表,把 JavaBean 屬性對映到資料庫表。

    通過 JDBC 技術,支援所有的 SQL 資料庫管理系統。Hibernate 與所有流行的 J2EE 應用程式伺服器和 Web 容器都很好地整合。

2.3   實際示例

    一個銀行應用程式示例可以讓您自己看到 Spring AOP和 Hibernate 一起工作有多麼好。銀行帳戶用例允許使用者 (Customer)在一個事務中開啟一個或多個銀行帳戶。使用者可以申請多個銀行帳戶,可以選擇是支票帳戶型別或者是儲蓄帳戶型別。

    應用程式資料庫(Cloudscape™)容納所有客戶和帳戶資訊。在這個例子中,假設在 Customer 和 Account 類之間存在 1:N 的關聯。在實際生活場景中,關聯可能需要按 m:n 建模,才能支援聯合帳戶。

    由於使用者必須可以在一個事務中申請多個帳戶,所以首先要為資料庫互動實現一個 DOA 模式。然後要設定 Spring AOP的 TransactionProxyFactoryBean,讓它攔截方法呼叫並宣告性地把事務上下文應用到 DOA。

2.4   Hibernate實踐

    在Spring框架中,像JDBC DataSource或Hibernate SessionFactory這樣的資源,在應用程式上下文中可以用bean實現。需要訪問資源的應用程式物件只需通過bean引用得到這類預先定義好的例項的引用即可(這方面的更多內容在 下一節中)。在清單1中,可以看到示例銀行應用程式的一段摘錄:XML 應用程式上下文定義顯示瞭如何設定JDBC DataSource,並在上面放一個Hibernate SessionFactory。

    清單1.JDBC DataSource 和 HibernateSessionFactory 連線



    清單 1 顯示瞭如何為示例應用程式資料庫(是 Cloudscape)配置資料來源 bean(exampleDataSource)。exampleDatasource被連線到 Spring Hibernate 的 SessionFactory。請注意 *.hbm.xml 指定了示例應用程式的OR對映檔案。 

    資料來源和會話工廠設定好之後,下一步就是在DAO中連線,在 CustomerDAOImpl 示例中,要使用 SessionFactory。接下來,插入Spring的TransactionProxyFactoryBean,它會攔截對應用程式的CustomerDAOImpl物件的方法呼叫,並宣告性地在它上面應用事務。

    在 清單 2 的這個示例中,CustomerDAOImpl 類的addCustomer 方法是作為事務的一部分執行的,有一個事務屬性 PROPAGATION_REQUIRED。這個屬性等價於 EJB 容器的 TX_REQUIRED。如果想讓這個方法一直在事務中執行,可以使用 PROPAGATION_REQUIRED。如果事務已經在執行,那麼 bean 方法會加入事務,否則 Spring 的輕量級事務管理器會啟動一個事務。如果想在呼叫元件服務時總是啟動新事務,可以使用 PROPAGATION_REQUIRES_NEW 屬性。

    應用程式的連線完成之後,現在來進一步檢視原始碼。

2.5   分析這個!

    如果以前沒這麼做過,那麼請 下載這篇文章的原始碼。把源 zip 檔案釋放到計算機中的任何位置上,例如 c:\。會建立一個叫作 SpringProjectPart2 的資料夾。src\spring 資料夾包含示例應用程式的 Hibernate 對映檔案和 Spring 配置檔案。src\springexample\hibernate 檔案包含應用程式的原始碼。

    在這裡會發現兩個類,即 Customer 和  Account,它們用 Hibernate 對映檔案對映到兩個表。Customer 類代表客戶資訊,Account 代表客戶的帳戶資訊。正如前面提到的,我把這兩個類按照 1: N 關係進行建模,即一個 Customer 可以擁有多個 Account。清單3顯示了 Customer 物件的 Hibernate 對映檔案。

    清單 3. Customer 物件的 Hibernate 對映檔案



    set name="accounts" 和一對多類標籤指定了 Customer 和 Account 之間的關係。我還在 Account.hbm.xml 檔案中定義了 Account 物件的對映。

    CustomerDAOImpl.java 代表應用程式的 DAO,它在應用程式資料庫中插入客戶和帳戶資訊。CustomerDAOImpl 擴充套件了 Spring 的 HibernateDaoSupport,它用 Spring

    HibernateTemplate 簡化了會話管理。這樣,可以通過 getHibernateTemplate() 方法儲存或檢索資料。下面顯示的 getCustomerAccountInfo() 對 Customer 進行 查詢,通過getHibernateTemplate().find方法用 HQL 得到客戶的帳戶資訊,如清單 4 所示。

    清單 4. DAO 實現

public  class CustomerDAOImpl extends HibernateDaoSupport implements CustomerDAO{

      public void addCustomer(Customer customer) {

            getHibernateTemplate().save(customer);    

            //TODO Auto-generated method stub

      }

      public Customer getCustomerAccountInfo(Customer customer) {

        Customer cust = null;

        List list = getHibernateTemplate().find("from Customer customer " +

          "where customer.userId = ?" , customer.getUserId(),Hibernate.STRING);

        if(list.size() > 0){

          cust = (Customer)  list.get(0);

        }

        return  cust;

  }

    所有這些都應當很容易掌握。現在來看程式碼的實際應用!

2.6  執行應用程式

    要執行示例應用程式,必須首先 下載 Spring 框架 和它的全部依賴檔案。接下來,釋放框架到某一位置(比如 c:\ ),這會建立資料夾 C:\spring-framework-1.2-rc2(針對當前發行版)。在繼續之前還必須下載和釋放 Apache Ant 和 Cloudscape。下載 Cloudscape之後,把它釋放到 c:\ ,這會建立資料夾 C:\Cloudscape_10.0

    接下來,釋放原始碼到 c:\ ,這會建立 SpringProject2 資料夾。接下來修改 build.xml 檔案的入口,用實際安裝 Spring 的位置代替 C:\spring-framework-1.2-rc2,用實際安裝 Cloudscape的位置代替 C:\Program Files\IBM\Cloudscape_10.0。

    開啟命令列提示符,進入 SpringProject 目錄,在命令列提示符下輸入以下命令:build. 

    這會構建並執行 CreateBankCustomerClient 類,它會建立 Customer 類物件,用資料填充它,建立 Account 物件,填充它,並把它新增到 Customer 物件。

    然後 CreateBankCustomerClient 會呼叫 CustomerDAOImpl.addCustomer 類,新增客戶和帳戶資訊。一旦插入完成,CreateBankCustomerClient 會呼叫CustomerDAOImpl.getCustomerAccountInfo 方法,根據 userid 得到客戶和帳戶資訊。如果 CreateBankCustomerClient 執行成功,會在控制檯上看到打印出 userid。也可以查詢 Cloudscape資料庫檢索客戶和帳戶資訊。 

2.7  結束語

    在三部分的 Spring 系列 的第 2 部分中,我介紹瞭如何整合 Spring Hibernate和Spring AOP。結果是一個強健的永續性框架,支援宣告性的實現事務。

    在這個系列的下一篇,也是最後一篇文章中,我將介紹 Spring 的 MVC 模組,介紹如何用它來簡化基於 Web 的應用程式的建立。

3 Spring MVC框架

3.1 Spring MVC框架

    Spring框架提供了構建 Web 應用程式的全功能 MVC 模組。使用 Spring 可插入的 MVC 架構,可以選擇是使用內建的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略介面,Spring 框架是高度可配置的,而且包含多種檢視技術,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC 框架並不知道使用的檢視,所以不會強迫您只使用 JSP 技術。Spring MVC 分離了控制器、模型物件、分派器以及處理程式物件的角色,這種分離讓它們更容易進行定製。

    Spring的Web MVC框架是圍繞DispatcherServlet設計的,它把請求分派給處理程式,同時帶有可配置的處理程式對映、檢視解析、本地語言、主題解析以及上載檔案支援。預設的處理程式是非常簡單的 Controller 介面,只有一個方法 ModelAndView handleRequest(request,response)。Spring 提供了一個控制器層次結構,可以派生子類。如果應用程式需要處理使用者輸入表單,那麼可以繼承AbstractFormController。如果需要把多頁輸入處理到一個表單,那麼可以繼承AbstractWizardFormController。

    示例應用程式有助於直觀地學習這些特性。銀行應用程式允許使用者檢索他們的帳戶資訊。在構建銀行應用程式的過程中,可以學到如何配置 Spring MVC 框架和實現框架的檢視層,檢視層包括 JSTL 標記(用於顯示輸出的資料)和JavaServer Pages 技術。

3.2 配置Spring MVC

    要開始構建示例應用程式,請配置 Spring MVC 的 DispatcherServlet。請在 web.xml 檔案中註冊所有配置。清單1顯示瞭如何配置 sampleBankingServlet。

    清單1. 配置Spring MVC DispatcherServlet


    DispatcherServlet從一個XML檔案裝入Spring應用程式上下文,XML檔案的名稱是servlet 的名稱後面加上-servlet 。在這個示例中,DispatcherServlet 會從 sampleBankingServlet-servlet.xml 檔案裝入應用程式上下文。

3.3 配置應用程式的URL

    下一步是配置想讓sampleBankingServlet處理的URL。同樣,還是要在web.xml中註冊所有這些資訊。

    清單 2. 配置想要處理的URL


3.4 裝入配置檔案

    下面,裝入配置檔案。為了做到這點,請為 Servlet 2.3 規範註冊 ContextLoaderListener 或為 Servlet 2.2 及以下的容器註冊 ContextLoaderServlet。為了保障後向相容性,請用ContextLoaderServlet。在啟動 Web 應用程式時,ContextLoaderServlet 會裝入 Spring 配置檔案。清單3註冊了 ContextLoaderServlet。

    清單 3. 註冊 ContextLoaderServlet


    contextConfigLocation引數定義了要裝入的 Spring 配置檔案,如下面的 servlet 上下文所示。

相關推薦

彙總Spring 框架專題

1 Spring框架1.1 Spring框架    Spring框架是一個分層架構,由7個定義良好的模組組成。Spring 模組構建在核心容器之上,核心容器定義了建立、配置和管理 bean 的方式,如圖1所示。圖1. Spring 框架的7個模組    組成Spring框架的

Java Spring 框架初步學習總結(一)簡單實現 IoC 和 AOP

1.0 其中 表示 只需要 第一篇 否則 info fin pojo   Spring 是一個開源的設計層面的輕量級框架,Spring 的好處網上有太多,這裏就不在贅述。   IoC 控制反轉和 AOP 面向切面編程是 Spring 的兩個重要特性。   IoC(Inver

常用配置Spring框架web.xml通用配置

name star spring config ini param lis 框架 -name <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun

JavaSpring MVC 擴展和SSM框架整合

nco span con odin typealias eal nag key ping 開發web項目通常很多地方需要使用ajax請求來完成相應的功能,比如表單交互或者是復雜的UI設計中數據的傳遞等等。對於返回結果,我們一般使用JSON對象來表示,那麽Spring MVC

Web篇03Spring框架下,servlet響應的res在jsp頁面中顯示時,防止亂碼的操作

首先,在Spring軟體中,找到Web工程,src下的對應的servlet; 在servlet中獲取請求引數之後,給瀏覽器傳送響應之前; 需要鍵入一段程式碼即可,如下: response.setContentType("text/html;charset=UTF-8"); 括號內的

開發工具EclipseSpring的約束匯入基於SSH框架

=================2018年3月21日更新了幾個約束=====================Spring涉及的幾個約束1. beans約束:最基本spring使用,用於配置xml的時候schema\beans\2. context約束:基本spring的註解

最簡單的解決方案spring框架中普通類(工具類)呼叫service

                   這套解決方案,純屬博主自己琢磨相出,絕非網上那些隨意轉載的解決方案!!                                                                                  

開源OSharp框架學習系列(1):總體設計及系列導航

正是 html 組織 內聚性 權限 是什麽 enc 3-0 分發 OSharp是什麽?   OSharp是個快速開發框架,但不是一個大而全的包羅萬象的框架,嚴格的說,OSharp中什麽都沒有實現。與其他大而全的框架最大的不同點,就是OSharp只做抽象封裝,不做實現。依賴註

Spring boot 打成jar包問題總結

alt date function get .post stack 問題 chan property http://www.cnblogs.com/xingzc/p/5972488.html 1、Unable to find a single main class

EFEF框架 Code First Fluent API

ride sda 之間 簡單的 post 框架 alt creat itl 在Code First方法中,還可以通過Fluent API的方式來處理實體與數據表之間的映射關系。 要使用Fluent API必須在構造自定義的DbContext時,重寫OnModelCrea

redisspring boot利用redis的Keyspace Notifications實現消息通知

客戶 無效 handler mage extend width psu 消息通知 queue 前言 需求:當redis中的某個key失效的時候,把失效時的value寫入數據庫。 github: https://github.com/vergilyn/RedisSampl

Hibernatehibernate框架的搭建

orm 3.1 configure rop height 多個 vax ebe 程序 1, Hibernate 是什麽 Hibernate框架簡化了java應用程序與數據庫交互的開發。 Hibernate是一個開源,輕量級的ORM(對象關系映射)工具。 2,Hibern

Bootstrap 框架 柵格布局系統底層設計原理

auto open 分析 大致 感覺 copy 效果 布局 str 如果你是初次接觸Bootstrap,你一定會為它的柵格布局感到敬佩。事實上,這個布局系統提供了一套響應式的布局解決方案。 既然這麽好用,那他是如何用CSS來實現的呢? 我特意去Bootstrap官方下載了源

SpringMVC---搭建框架步驟

enc dex xmlns 4.3 base isp quest bind 得到 項目如下 一、加入 Jar 包 部分jar包可以不導(第4、9、11個可以不導入) 二、在 Web.xml 中配置 DispatcherServlet <?xml v

Spring MVC系列(五)之自定義數據綁定---HandlerMethodArgumentResolver

開閉 src pat 獲取參數 mvc .net 定義 開閉原則 淺析 介紹 前面幾節我們介紹了Spring MVC的幾種常見的數據綁定的方法,可以靈活地獲取用戶請求中的參數,例如@PathVariable,@ModelAttribute,@RequestPar

AOPspring 的AOP編程報錯:[Xlint:invalidAbsoluteTypeName]error

type col net aop mage nbsp warn control absolute AOP來發過程中,報錯如下: warning no match for this type name: net.shopxx.wx.institution.control

轉載Spring AOP詳解 、 JDK動態代理、CGLib動態代理

rto 工廠 第一個 lec 僅支持 sel clas sleep gpo 原文地址:https://www.cnblogs.com/kukudelaomao/p/5897893.html AOP是Aspect Oriented Programing的簡稱,面向切面

MVCSpring MVC常用配置

solver errors 自動裝箱 property byte mco 驗證 c基礎 form表單 一、SpringMVC基礎入門,創建一個HelloWorld程序 1.首先,導入SpringMVC需要的jar包。 2.添加Web.xml配置文件中關於Spring

javaspring項目中 對entity進行本類間的克隆

tor mini cti false display des private rac 重寫 方法1: 【使用spring自帶BeanUtils實現克隆】 【要求:需要被克隆的類實現Cloneable接口並且重寫clone()方法】 》例子: 》》實體: package

spring cloud eureka 參數配置

lint 客戶 就會 大於 health 微服務 表示 安全 穩定 eureka.client.registry-fetch-interval-seconds 表示eureka client間隔多久去拉取服務註冊信息,默認為30秒,對於api-gateway,如果要迅速獲