打造0配置檔案的SSH框架 5

2021-08-29 09:08:52 字數 1948 閱讀 9457

spring的可擴充套件點做得比hibernate好多了,參考文件上就可以找到擴充套件spring配置檔案的方法。利用在類路徑的meta-inf目錄下加入spring.handlers和spring.schemas兩個檔案來作為擴充套件的入口。

第一步,定義標識service bean的annotation:

該annotation其實只需要乙個屬性,該service bean註冊到spring中的id,所以我建立了如下的名字叫bean的annotation類:

[code]

@target()

@retention(retentionpolicy.runtime)

@documented

public @inte***ce bean

[/code]

該annotation只能定義在類或者介面上,只有乙個屬性id,必填。用它標識後的service bean如下:

[code]

@bean(id="sample.lesson.student")

public class studentservicebean implements istudent

}[/code]

這裡就是告訴spring容器,初始化處理annotation-autoload這個的xml element時,使用annotationautoloadbeandefinitionparser,該parser是乙個實現了beandefinitionparser介面的類。

第四步,實現自定義的beandefinitionparser

beandefinitionparser介面中,必須實現的方法是parse方法。顧名思義,我們要在這個方法中解析自定義的xml element,然後拿到在xml定義的service bean所在的類路徑,再將該路徑下被@bean註冊過的類,註冊到spring的容器中。

[code]

public beandefinition parse(element element, parsercontext parsercontext)

[/code]

parse的兩個引數:

1. element表示需要被我們解析的自定義的xml element對應的物件,這裡對應的就是節點及其子節點。通過該物件我們可以獲取我們配置的類路徑,並搜尋類路徑,找到需要註冊到spring容器中的類以及註冊後的id。

[code]

//從parsercontext中獲取bean註冊器

beandefinitionregistry bdr = parsercontext.getregistry();

//從建立乙個spring bean的定義,並設定一下初始化值

//setbeanclass就是設定符合條件的service bean對應的class

final rootbeandefinition rbd = new rootbeandefinition();

rbd.setabstract(false);

rbd.setbeanclass(c);

rbd.setsingleton(false);

rbd.setlazyinit(false);

//將spring bean的定義,通過id,註冊到spring容器中

//這裡的id就是從annotation中去到的service bean對應的spring bean id

bdr.registerbeandefinition(id, rbd);

[/code]

另外,該方法雖然需要返回值,但也是可以返回null的。定義好這個annotationautoloadbeandefinitionparser後,將spring bean註冊的xml**移植到annotation上就大功告成。當spring啟動解析到標籤時,就會將處理的過程交給annotationautoloadbeandefinitionparser,有parser裡的parse方法來解析到service bean所在路徑,搜尋,獲取id和class,最後載入完成。

SSH框架搭建及配置檔案

2,通過web.xml來載入spring的環境。也就是說在web.xml的檔案中加入如下 說明 listener優先啟動 注意 一些配置檔案必須放在src的目錄下,否則會拋錯誤,說找不到檔案。3,struts2按照以前的用法,配置好。struts2的配置檔案包括兩個 乙個是struts.xml,乙個...

ssh框架優化配置檔案位置

步驟實施 原來的sessionfactory中的property標籤指定了hibernate.cfg.xml的位置,現在將這個位置刪除,然後改為三部分的資訊 連線資料庫資訊,hibernate可選配置,對映檔案位置 org.hibernate.dialect.mysqldialect true fa...

SSH配置檔案

首先我們應該確定架包版本 開發軟體的版本 由我的經驗我給出的介意為 eclipse mars tomcat7 8 原因在於 有乙個小 只能使用 以上版本 接下來我們應該最先配置 檔案的東西 第乙個為解決中文亂碼問題 該配置能解決大部分亂碼問題 例如 在 後加上 張三 男就不能解決 此亂碼用過濾器解決...