利用WebApplicationInitializer配置SpringMVC取代web.xml
對於Spring MVC的DispatcherServlet配置方式,傳統的是基於XML方式的,也就是官方說明的XML-based,如下:
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation< /param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
< /servlet-mapping>
但是Spring文件建議我們採用code-based這種方式,當然,核心就是實現WebApplicationInitializer這個介面,檢視這個介面的原始碼,裡面也非常簡單,只有一個方法,傳入的引數是ServletContext:
void onStartup(ServletContext servletContext) throws ServletException;
下面是一個小例子:
1.專案結構:
2.MyWebAppInitializer.java
public class MyWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
XmlWebApplicationContext appContext = new XmlWebApplicationContext();
appContext.setConfigLocation("classpath:spring-mvc.xml");
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(appContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
3.UserController.java
@Controller
public class UserController {
@RequestMapping("/show")
public String show() {
return "show";
}
}
4.spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 掃描註解的base package -->
<context:component-scan base-package="com.springmvc" />
<!-- 對模型檢視名稱的解析,即在模型檢視名稱新增前後綴 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
5.show.jsp
6.啟動Tomcat後輸入url後發現是會出現結果的,code-based是成功的!
- pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springmvc</groupId>
<artifactId>MyWebAppInitializer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.2</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<spring-version>4.3.1.RELEASE</spring-version>
</properties>
<dependencies>
<!-- spring相關 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- log4j日誌相關 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.54</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
相關推薦
利用WebApplicationInitializer配置SpringMVC取代web.xml
對於Spring MVC的DispatcherServlet配置方式,傳統的是基於XML方式的,也就是官方說明的XML-based,如下: <servlet> <servlet-name>springMVC</serv
SpringMVC基於代碼的配置方式(零配置,無web.xml)
-c size ons imp .net rri import 右鍵 無需 基於配置文件的web項目維護起來可能會更方便,可是有時候我們會有一些特殊的需求,比方防止客戶胡亂更改配置,這時候我們須要給配置隱藏到代碼中。 1.創建一個動態web項目(無需w
關於SpringMvc中web.xml配置的Servlet
< servlet > <!-- 配置DispatcherServlet --> < servlet-name >springMvc</ serv
SpringMVC中web.xml的配置理解
在web.xml種這樣配置 <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </list
Springmvc專案web.xml中servlet-mapping的路徑對映配置注意事項
今天準備在IDEA編輯器下建立個通過maven管理的springMVC工程來測試一些功能,按照記憶中的方式以及配合百度完成了工程的建立,但在訪問web.xml中配置的首頁時,無論如何都無法訪問,試了很多方式,但都不是很理想,無意間仔細看了下下的對映規則,再結合自
springMVC中web.xml配置/和/*的區別
新建一個spring專案發現無法訪問到jsp頁面,靜態html也無法訪問,終於找到答案,原來是spring攔截配置的不對,一直寫的是這種配置,今天發現是不對的,好在找到了答案:) springmvc /* 一、我們都知道在基於Spring的Application中,需要在w
SpringMVC基於程式碼的配置方式(零配置,無web.xml)
基於配置檔案的web專案維護起來可能會更方便,但是有時候我們會有一些特殊的需求,比如防止客戶胡亂更改配置,這時候我們需要給配置隱藏到程式碼中。 1.建立一個動態web專案(無需web.xml) 2.右鍵專案新增幾個package: com.easyweb.c
Springmvc中web.xml的配置詳解
<!-- springMVC核心配置 --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.ser
SpringMVC之web.xml基本配置
web.xml檔案的作用: 1.指定webapp的名稱 <display-name>SpringMVCDemo</display-name> 2.初始化上下文引數,裝載spring配置 <context-param> <param-
SpringMVC 通過java類配置(不通過web.xml和xml 配置檔案方式)
介紹:springMVC 常用的配置方式是在web.xml 中配置dispatcherservlet 和 ContextConfigLocation 和一些攔截器,然後或是配置applicationContext-mvc.xml 然後在controller 等類中加上註解的方
項目的配置文件-web.xml
splay patch con springmvc att .html ont size log web.xml <?xml version="1.0" encoding="utf-8"><web-app ......> <welcome
配置struts時web.xml中<url-pattern>*.action</url-pattern>
names val put eth package pan 評論 dispatch mce <filter> <filter-name>struts2</filter-name> <filter-class>org
eclipse環境Dynamic web module version 3.1版本的進步,簡化Dynamic web object 中Servlet類的配置,不用web.xml配置<Servlet>
-a utf-8 新建 分享 tde ati servle eclipse cati eclipse環境Dynamic web module version 3.1版本之前,Dynamic web object 中Servlet類的配置,要在web.xml 配置<Se
ssm框架整合入門系列——配置SpringMVC dispatcherServlet-servlet.xml
配置SpringMVC dispatcherServlet-servlet.xml 在ssm-crud專案中 SpringMVC的配置主要是在dispatcherServlet-servlet.xml檔案 在這之前,先修改beans的頭資訊,否則按alt+/ 快捷鍵沒有
ssm框架整合入門系列——編寫ssm整合的關鍵配置檔案(web.xml)
編寫ssm整合的關鍵配置檔案(web.xml) 前言 web.xml,一個Tomcat工程中最重要的配置檔案。web.xml沒有其實也可以----只要你確定你的專案裡面不需要任何過濾器、監聽器、Servlet等等 在啟動一個WEB專案的時候,WEB容器(比如t
ssm專案學習3-ssm整合的關鍵配置檔案(web.xml等)
1.在web.xml中編寫ssm整合的關鍵配置檔案(包括:web.xml、spring、 springwebmvc的等) 首先在web.xml中: 1. 加入啟動spring的容器的配置檔案: #contextloade
springmvc-沒有web.xml和springmvc.xml你還可以執行起來springmvc嗎
前面也寫了幾篇有關springboot的簡單使用的文章,也寫了幾篇有關springcloud的文章,不過springcloud是基於springboot的。所以就來糾結一下springboot的吧。 springboot之所以可以不用使用任何的xml配置檔案就可
配置servlet的web.xml檔案導致tomcat無法啟動
我們按正常步驟建立servlet,接著配置web.xml檔案,然後我們啟動伺服器時發現提示如下錯誤: 提示Tomcat伺服器遇到一個問題,那我們首先看一下java檔案: 我們可以發現在13行處:@WebServlet("/HelloWorld") 接下來看一下x
配置Tomcat時web.xml、server.xml和content.xml自動還原問題
當我們在處理中文亂碼或是配置資料來源時,我們要修改Tomcat下的server.xml和content.xml檔案。 但是當我們修改完後重啟Tomcat伺服器時發現xml檔案又被還原了,修改無效果。 為什麼會還原? Tomcat伺服器在Eclipse中啟動時,會自動釋出Eclipse中部
SSH框架中的配置檔案值web.xml
Web.xml <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.s