版權(quán)所有,轉(zhuǎn)載注明。
0. 緒言
Java Web開發(fā)中,除了基礎(chǔ)知識外,開發(fā)環(huán)境搭建,也是一項基本功。開發(fā)環(huán)境包括了IDE、項目管理、項目架構(gòu)組織、依賴管理等等,以及簡單的測試。能夠熟練的搭建出Java Web的開發(fā)環(huán)境,也能夠提現(xiàn)開發(fā)者Java Web的開發(fā)功底,如Maven依賴管理的使用,項目組織結(jié)構(gòu)的清晰程度,都能體現(xiàn)開發(fā)者素質(zhì)。
環(huán)境搭建過程比較簡單,但是基于Maven的Java Web項目,在MyEclipse這個IDE下創(chuàng)建時,需要做一些自主的調(diào)整。
1. 環(huán)境參數(shù)
MyEclipse
MyEclipse Spring 2014 GA (很多人不懂GA,General Availability,正式發(fā)布的版本),Spring版本增加了Spring插件,裝標準版、Pro版也可以。如果沒有必要,就不用裝blue版本和bling了。
其他
JDK 1.7
Maven 3.3.3
Tomcat 8
2. 安裝
配置Java開發(fā)環(huán)境
下載安裝JDK 1.7,JRE 7
配置環(huán)境變量:
(1)新建 JAVA_HOME
D:\Java\jdk1.7.0_17
(2)新建JAVA_CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
(3)添加Path
.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
注意了,JRE環(huán)境變量慎重添加,小心Tomcat啟動錯誤。
Maven
下載,解壓到常用目錄,盡量簡潔的路徑。
我的路徑:D:\apache-maven-3.3.3
安裝MyEclipse
下載標準版,或者Spring版本,選擇穩(wěn)定的,我用的是2014版本,之前一直用2010版本,都挺好用的。
安裝完成即可。
Tomcat
下載,解壓到常用目錄,盡量簡潔的路徑。
我的路徑:D:\apache-tomcat-8.0.23
3. MyEclipse的Maven配置
啟動MyEclipse,配置Maven:Window -> Preferences -> MyEclipse -> Maven4MyEclipse
所有的配置都在此處完成。
添加Maven
配置JDK:
Installations中:
通過Add,添加自己的Maven,配置文件會自動識別獲取到。
User Settings中:
完成配置后即可使用。
Tomcat配置
Window -> Preferences -> MyEclipse -> Servers -> Tomcat
選擇Tomcat主目錄:
完成配置。
4. Java Web on Maven項目建立
Java Web on Maven項目,有兩種方式建立,與IntelliJ IDEA不同,MyEclipse默認并不是基于Maven進行項目管理的,而是使用自己的項目管理方式。因此,此處有兩種方式建立項目:
·建立一個Java Web Project,引入Maven(推薦,快捷)
·建立一個Maven Project,引入J2EE
建立一個Java Web Project 并 引入 Maven
Java Web提供了Java Web所需要的各類文件和文件目錄,但是并沒有提供Maven,所以需要進行適當?shù)囊搿?/p>
這種方式建立的項目,有著Maven的結(jié)構(gòu),采用Maven管理包,但實質(zhì)上是一個Java Web項目。不過從本實際效果看,和第二種方法是一致的。
新建Java Web項目
進入向?qū)В?br>
Next... Next....
Next...
推薦選擇標準Maven項目結(jié)構(gòu),圖中雖然是選在第一個,但是實際上選了第二個,不再重復(fù)截圖了。
最終創(chuàng)建成功,項目結(jié)構(gòu)如圖:
建立一個 Maven Project 并 引入J2EE
這種方式建立的項目,是一個Maven項目,增加了對Java Web的相關(guān)支持,補充了各類配置參數(shù)文件和目錄。與前一種方法所達到的效果是相同的。
通過建立Maven項目,然后將J2EE引入到項目中,添加必要的目錄結(jié)構(gòu)等。
新建項目:
使用filter篩選:
需要選擇一個archetype:輸入webapp篩選,可能一開始沒有加載出來,稍微等等:
如圖,選擇webapp-javaee的6或者7,此處選擇7,Next...
Finish完成項目建立。
完成建立項目如圖:
里面有個錯誤,新建項目就有錯誤,有意思:
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.6:copy (execution: default, phase: validate)
說是有個plugin有問題:
解決辦法是給這個plugin單獨包一下:
<build>
<pluginManagement>
<plugins>
<plugin> ... </plugin>
<plugin> ... </plugin>
....
</plugins>
</pluginManagement>
</build>```

錯誤解決了,Maven項目建立成功。
從前面項目結(jié)構(gòu)圖中,可以看到,Maven項目具有的特征目錄結(jié)構(gòu)與在Java Web項目基礎(chǔ)上引入Maven包管理基本一致,但還是有比較多的細節(jié)差別,下面將一一補充。
##### 補充目錄
補充
**src/main/resources
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/classes
src/main/webapp/META-INF
src/test/resources
src/test/webapp**

目錄增加后,跟build path設(shè)置:

增加對應(yīng)的目錄,如果你之前不是增加的sources folder:

配置輸出目錄:

最終結(jié)果:

此時基本上就配置完成了。
# 5. 項目其他配置
> 參考網(wǎng)上大牛們的經(jīng)驗,有如下一些經(jīng)驗配置,感謝各位大牛提供的寶貴經(jīng)驗,在此不一一列舉。
##### 常用包pom配置
###### spring包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</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-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
###### servlet
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
###### 數(shù)據(jù)相關(guān)操作
數(shù)據(jù)庫操作,MySQL、iBatis
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring-version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis-version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
數(shù)據(jù)源配置
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.1</version>
</dependency>
json操作
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.1</version>
</dependency>
###### 測試包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.1.RELEASE</version>
<scope>test</scope>
</dependency>
###### 日志包
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
###### 其他
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3</version>
</dependency>
##### web.xml
web.xml配置中,一些比較常見的配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Maven4JavaWebProjectDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Maven4JavaWebProjectDemo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Maven4JavaWebProjectDemo</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
**注冊了一個servlet,是org.springframework.web.servlet.DispatcherServlet前端控制器,同時給這個servlet前端控制器分配了servlet-mapping。此處,給DispatcherServlet分配的映射是/,即所有的請求。同時,此處指定了Spring的DispatcherServlet的配置文件所在位置:classpath:spring/applicationContext.xml。**
跟著網(wǎng)上大牛學(xué)習(xí),spring配置:
<servlet>
<servlet-name>Maven4JavaWebProjectDemo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
###### applicationContext.xml
位于src/main/resources/spring/目錄下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<import resource="classpath:spring/applicationContext-mvc.xml" />
</beans>
該配置中,import了外部文件,用于配置mvc內(nèi)容,位置與其在相同目錄:
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"
default-lazy-init="true">
<context:component-scan base-package="com.hgr.Maven4JavaWebProjectDemo"/>
<mvc:resources location="/WEB-INF/pages/" mapping="/pages/**"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=utf-8</value>
<value>application/json;charset=utf-8</value>
<value>application/x-www-form-urlencoded</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
</beans>
##### 項目輸出配置:

# 6. 部署
可以Debug As,也可以Run As:

選擇之前配置的Server:

Tomcat的webapp下部署成功:

測試運行:

跟著大牛學(xué)習(xí),參考來自:[嘟嘟MD](http://www.lxweimin.com/users/a7f72d78fe0d)