Spring設定web.xmlのラベル
web.xmlに配置する
&initMultiiPad Resoliver役割:Springを初期化したファイルのアップロード解析器です.
&init LocareResoliver webアプリケーションは国際化をサポートしており、各ユーザの優先領域を識別し、このエリアに従って内容を表示する必要があります.Spring MVCアプリケーションでは、ユーザーの領域は領域解像器によって識別され、LocareResolaverインターフェースを実現する必要があります.
&The meResolaverテーマ解析初期化プロセスは上のLocaleResolaver方式と同じで、定義がないとデフォルトの設定
&init HandlerMappings作用:ユーザ要求に関連したコントローラを初期化する
&init Handler Adapters役割:ユーザーの要求を処理する.HandlerMappingsは、ユーザの要求に対応する処理クラスと関数を見つけることであり、HandlerAdapterタスクは、発見された関数を実行することであり、実行する前に一連の初期化動作が行われる.Springでデフォルトで定義されているHandlerAdapterは、HttpRequest Handler Adapter、SimpleController Handler Adapter、AnnotationMethodhandler*Springは、ユーザー定義のHandlerAdapterをどのようにロードするかを指定します.
&inithandler Exception Resolvers役割:初期化異常解像器とは、handle要求時に発生した異常に対してどのように処理するかということです.実は、reponseオブジェクトの設定です.また、ModelAndViewオブジェクトに戻るということです.Springは、ユーザー定義のHandlerAdapterをどのようにロードするかを「Spring MVC-HandlerException Resolaver」で共有し、Spring MVC-HandlerException Resoliver」をクリックして、Spring MVC-Handler Exception Resolaverに行きます.
&init Request ToView NameTranslator役割:要求を対応するビュー名Springに変換するデフォルトのHandlerAdapterはAnnotationMethodhandler Exception Resolover、RespnseStation Exception Resolaver、Default HandlerException Resoliverです.
Springは、ユーザー定義のHandlerAdapterをどのようにロードするかを「Spring MVC-Request ToView NameTranslator」で共有します.
&init View Resolovers役割:ビュー解析Springでデフォルトで定義されているのはView Resolaverで、InternalResource View Resoliver Springです.ユーザー定義のHandlerAdapterをどのようにロードするかは、「Spring MVC-ViewResoliver」で共有します.
<servlet>
<servlet-name>citic</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/frm-servlet.xml,/WEB-INF/app-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
相続関係を先に見ます.public class DispatcherServlet extends FrameworkServlet
public abstract class FrameworkServlet extends HttpServletBean
public abstract class HttpServletBean extends HttpServlet
最終的に継承されるのはjavax.servlet.http.HttpServlet類であり、一つのServletを初期化する時にデフォルトで定義されたint()メソッドを呼び出すことが知られています.すべては必ずこの方法で文章を作成します.この方法はHttpServletBenで書き換えます.クラスの重要コードは以下の通りです.@Override
public final void init() throws ServletException {
// FrameworkServlet
initServletBean();
Fraameweork ServletのinitServletBeanの内部コード:this.webApplicationContext = initWebApplicationContext();
initFrameworkServlet();
protected WebApplicationContext initWebApplicationContext() {
onRefresh(wac);
}
はい、onRefshは最終的に私達が接触するクラスのDisplatServletで実現する方法で、Displatch Servlet類の内部コードを直接位置決めします.@Override
protected void onRefresh(ApplicationContext context) {
initStrategies(context);
}
/**
* Initialize the strategy objects that this servlet uses.
* May be overridden in subclasses in order to initialize further strategy objects.
*
,, WebApplicationContext , ,
* IOC , web.xml Spring , DispatcherServlet load-on-startup 2 。
*/
protected void initStrategies(ApplicationContext context) {
initMultipartResolver(context);
initLocaleResolver(context);
initThemeResolver(context);
//// Handler , @RequestMapping(value = "/something", method = RequestMethod.PUT)
initHandlerMappings(context);
initHandlerAdapters(context);
initHandlerExceptionResolvers(context);
initRequestToViewNameTranslator(context);
initViewResolvers(context);
initFlashMapManager(context);
}
えっと、こんなに多く初期化されているのを見て安心しました.ここの方法はどれもSpringの大牛のところです.中には注釈を使った声明がたくさんあります.&initMultiiPad Resoliver役割:Springを初期化したファイルのアップロード解析器です.
private void initMultipartResolver(ApplicationContext context) {
this.multipartResolver = context.getBean(MULTIPART_RESOLVER_BEAN_NAME, MultipartResolver.class);
ただ簡単にApplication Contect(bean工場に相当)から必要なタイプの対象を得るだけです.&init LocareResoliver webアプリケーションは国際化をサポートしており、各ユーザの優先領域を識別し、このエリアに従って内容を表示する必要があります.Spring MVCアプリケーションでは、ユーザーの領域は領域解像器によって識別され、LocareResolaverインターフェースを実現する必要があります.
private void initLocaleResolver(ApplicationContext context) {
this.localeResolver = context.getBean(LOCALE_RESOLVER_BEAN_NAME, LocaleResolver.class);
…………
catch (NoSuchBeanDefinitionException ex) {
// We need to use the default.
this.localeResolver = getDefaultStrategy(context, LocaleResolver.class);
ここで注意してください.デフォルトのlocaleResolaverがなければ、実際のプロパティファイルDisplatServlet.propertiesのorg.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver
はAcceptHeader LocareResolaver類です.&The meResolaverテーマ解析初期化プロセスは上のLocaleResolaver方式と同じで、定義がないとデフォルトの設定
org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixedThemeResolver
を得ることができます.&init HandlerMappings作用:ユーザ要求に関連したコントローラを初期化する
// HandlerMapping,
// handlerMapping,
Map<String, HandlerMapping> matchingBeans = BeanFactoryUtils.beansOfTypeIncludingAncestors(context, HandlerMapping.class, true, false);
とても簡単で、bean工場から所与のタイプのすべてのbeanをもらいます.Springでデフォルトで定義されているBenNameUrlhandlerMappingとDefault AnnotationHandlerMapping*Springは、ユーザー定義のHandlerMappingをどのようにロードするかを「Spring MVC-HandlerMapping」で共有します.ここをクリックしてSpring MVC-HandlerMappingに行きます.&init Handler Adapters役割:ユーザーの要求を処理する.HandlerMappingsは、ユーザの要求に対応する処理クラスと関数を見つけることであり、HandlerAdapterタスクは、発見された関数を実行することであり、実行する前に一連の初期化動作が行われる.Springでデフォルトで定義されているHandlerAdapterは、HttpRequest Handler Adapter、SimpleController Handler Adapter、AnnotationMethodhandler*Springは、ユーザー定義のHandlerAdapterをどのようにロードするかを指定します.
&inithandler Exception Resolvers役割:初期化異常解像器とは、handle要求時に発生した異常に対してどのように処理するかということです.実は、reponseオブジェクトの設定です.また、ModelAndViewオブジェクトに戻るということです.Springは、ユーザー定義のHandlerAdapterをどのようにロードするかを「Spring MVC-HandlerException Resolaver」で共有し、Spring MVC-HandlerException Resoliver」をクリックして、Spring MVC-Handler Exception Resolaverに行きます.
&init Request ToView NameTranslator役割:要求を対応するビュー名Springに変換するデフォルトのHandlerAdapterはAnnotationMethodhandler Exception Resolover、RespnseStation Exception Resolaver、Default HandlerException Resoliverです.
Springは、ユーザー定義のHandlerAdapterをどのようにロードするかを「Spring MVC-Request ToView NameTranslator」で共有します.
&init View Resolovers役割:ビュー解析Springでデフォルトで定義されているのはView Resolaverで、InternalResource View Resoliver Springです.ユーザー定義のHandlerAdapterをどのようにロードするかは、「Spring MVC-ViewResoliver」で共有します.