Wczytywanie kontekstu wiosną za pomocą web.xml
Czy istnieje sposób na załadowanie kontekstu za pomocą web.xml w aplikacji Spring MVC?
3 answers
From the spring docs
Spring można łatwo zintegrować z dowolnym frameworkiem www opartym na Javie. Wszystko, co musisz zrobić, to zadeklarować ContextLoaderListenerw swojej sieci.XML i użyj contextConfigLocation, aby ustawić, które Pliki kontekstowe mają być ładowane.
<context-param>
:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
Możesz następnie użyć Webaplicationkontekst, aby uzyskać obsługę fasoli.
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext());
SomeBean someBean = (SomeBean) ctx.getBean("someBean");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-23 08:47:52
Możesz również określić lokalizację kontekstu względem bieżącej ścieżki klasowej, która może być preferowana
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-11 10:53:06
Można również załadować kontekst podczas definiowania samego servletu (Webaplicationcontext )
<servlet>
<servlet-name>admin</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/*.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>admin</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Zamiast (ApplicationContext )
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
Lub może zrobić oba razem.
Wadą korzystania z Webaplicationcontext jest to, że załaduje kontekst tylko dla tego konkretnego punktu wejścia Springa (DispatcherServlet
), gdzie jak w przypadku wyżej wymienionych metod kontekst zostanie załadowany dla wielu punktów wejścia (np. Webservice Servlet, REST servlet
etc)
Kontekst załadowany przez ContextLoaderListener
będzie kontekst nadrzędny do tego załadowanego specjalnie dla DisplacherServlet . Więc w zasadzie można załadować wszystkie usługi biznesowe, dostęp do danych lub repozytorium beans w kontekście aplikacji i oddzielić kontroler, view resolver beans to WebApplicationContext.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-14 23:30:20