在spring3中已經可以用@configuration標識乙個類代替xml來配置bean容器,該類中所用標識有@bean註解的方法都會發布成乙個bean,在spring mvc框架中也提供了註解的配置的方式,即@enablewebmvc,這篇文章試圖討論下@enablewebmvc這個註解背後幹了什麼。
大家都知道spring mvc容器很靈活,處理請求的各個模組都是隔離的,很方便定製化,當你使用@enablewebmvc來配置spring mvc時,會把webmvcconfigurationsupport當成配置檔案來用,將其中所有標識有@bean註解的方法配置成bean,這就成了spring mvc的預設配置(了解spring mvc的人應該都知道下面bean的作用):
其他前面說過各個元件都是可以定製化,在webmvcconfigurationsupport是通過模板方法模式來實現的,在各個發布成bean的方法中,都呼叫了自定義元件的抽象方法,在子類中可以覆蓋,如
對handleradapter元件,有addinterceptors(interceptorregistry registry)可以新增自己的***;
對conversionservice元件,有addformatters(formatterregistry registry)可以新增自己的型別轉換器;
等等。。。
從而實現定製化。
上面提到子類,spring mvc提供的預設實現是delegatingwebmvcconfiguration,覆蓋父類的方法之前,它會尋找容器中所有的webmvcconfigurer實現類,將所有webmvcconfigurer實現類中的配置組合起來,組成乙個超級配置,這樣,webmvcconfigurationsupport中的bean發布時,就會把這所有配置都帶上了。
不知道說清楚了沒有
springMVC 註解配置
springmvc org.springframework.web.servlet.dispatcherservlet contextconfiglocation classpath springmvc servlet.xml 1 package com.kuang.controller 表明這個是...
SpringMVC的註解配置
springmvc得到工作原理 註解的處理器對映器和處理器介面卡 mvc annotation driven mvc annotation driven 為了讓註解的處理器對映器和處理器介面卡找到註解的handler,使用掃瞄配置,對某一包下的所有類進行掃瞄,找到所有使用 contrller註解的h...
Spring mvc註解配置的背後
在spring3中已經可以用 configuration標識乙個類代替xml來配置bean容器,該類中所用標識有 bean註解的方法都會發布成乙個bean,在spring mvc框架中也提供了註解的配置的方式,即 enablewebmvc,這篇文章試圖討論下 enablewebmvc這個註解背後幹了...