第4.41課 上課 Maven創建Web項目, 項目目錄結構整理, pom.xm…


4_41

Maven創建Web項目

項目目錄結構整理

 src

  main

   java(源代碼)

   resources(資源文件)

   webapp(web應用目錄)

  test

   java(測試源代碼)

   resources(測試資源文件)

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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>org.oa</groupId>

<artifactId>OA-SSH</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>OA-SSH Maven Webapp</name>

<url>http://maven.apache.org</url>

 

<!-- 配置的全局的屬性 -->

<properties>

<junit.version>4.11</junit.version>

<servlet.version>3.1.0</servlet.version>

<spring.version>4.2.5.RELEASE</spring.version>

<hibernate.version>5.1.0.Final</hibernate.version>

<slf4j.version>1.7.12</slf4j.version>

<mysql.version>5.1.38</mysql.version>

<log4j.version>1.2.17</log4j.version>

<freemarker.version>2.3.23</freemarker.version>

<jackson.version>2.7.4</jackson.version>

<commons-logging.version>1.2</commons-logging.version>

</properties>

<!-- 配置的全局的屬性 end-->

 

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>${junit.version}</version>

<!-- 該jar包保留到測試 -->

<scope>test</scope>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>${servlet.version}</version>

</dependency>

 

 

<!-- spring框架jar -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aop</artifactId>

<version>${spring.version}</version>

</dependency>

 

 

<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-expression</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-web</artifactId>

<version>${spring.version}</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</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-orm</artifactId>

<version>${spring.version}</version>

</dependency>

 

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>${commons-logging.version}</version>

</dependency>

 

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>${jackson.version}</version>

</dependency>

 

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-annotations</artifactId>

<version>${jackson.version}</version>

</dependency>

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-core</artifactId>

<version>${jackson.version}</version>

</dependency>

<!-- spring框架jar end -->

<!-- hibernate框架jar -->

<!-- Hibernate -->

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-core</artifactId>

<version>${hibernate.version}</version>

</dependency>

<!-- for JPA, use hibernate-entitymanager instead of hibernate-core -->

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-entitymanager</artifactId>

<version>${hibernate.version}</version>

</dependency>

<!-- optional -->

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-osgi</artifactId>

<version>${hibernate.version}</version>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-envers</artifactId>

<version>${hibernate.version}</version>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-c3p0</artifactId>

<version>${hibernate.version}</version>

</dependency>

 

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-proxool</artifactId>

<version>${hibernate.version}</version>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-infinispan</artifactId>

<version>${hibernate.version}</version>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-ehcache</artifactId>

<version>${hibernate.version}</version>

</dependency>

 

<dependency>

<groupId>antlr</groupId>

<artifactId>antlr</artifactId>

<version>2.7.7</version>

</dependency>

<dependency>

<groupId>aopalliance</groupId>

<artifactId>aopalliance</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

<version>1.8.7</version>

</dependency>

 

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.2</version>

</dependency>

 

<dependency>

<groupId>dom4j</groupId>

<artifactId>dom4j</artifactId>

<version>1.6.1</version>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>${mysql.version}</version>

</dependency>

 

<!-- hibernate框架jar end -->

 

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>${log4j.version}</version>

</dependency>

 

<dependency>

<groupId>org.freemarker</groupId>

<artifactId>freemarker</artifactId>

<version>${freemarker.version}</version>

</dependency>

</dependencies>

 

 

<!-- 項目構建部分 -->

<build>

<!-- 打成war的最終名 -->

<finalName>oa</finalName>

<!-- 指定java源代碼存放的目錄 -->

<sourceDirectory>${basedir}/src/main/java</sourceDirectory>

<!-- 指定資源文件存放的目錄 -->

<resources>

<resource>

<directory>${basedir}/src/main/resources</directory>

</resource>

</resources>

<!-- 指定測試源代碼存放的目錄 -->

<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>

<!-- 指定測試資源文件存放的目錄 -->

<testResources>

<testResource>

<directory>${basedir}/src/test/resources</directory>

</testResource>

</testResources>

 

<!-- 配置插件 -->

<plugins>

<!-- 編譯插件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.1</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

<encoding>utf-8</encoding>

</configuration>

</plugin>

<!-- web容器插件 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat8-maven-plugin</artifactId>

<version>2.2</version>

<configuration>

<!-- 端口號 -->

<port>8080</port>

<!-- 支持熱部署 -->

<contextReloadable>true</contextReloadable>

</configuration>

</plugin>

</plugins>

</build>

</project>

 

 build部分配置

<!-- 項目構建部分 -->

<build>

<!-- 打成war的最終名 -->

<finalName>oa</finalName>

<!-- 指定java源代碼存放的目錄 -->

<sourceDirectory>${basedir}/src/main/java</sourceDirectory>

<!-- 指定資源文件存放的目錄 -->

<resources>

<resource>

<directory>${basedir}/src/main/resources</directory>

</resource>

</resources>

<!-- 指定測試源代碼存放的目錄 -->

<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>

<!-- 指定測試資源文件存放的目錄 -->

<testResources>

<testResource>

<directory>${basedir}/src/test/resources</directory>

</testResource>

</testResources>

 

<!-- 配置插件 -->

<plugins>

<!-- 編譯插件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.1</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

<encoding>utf-8</encoding>

</configuration>

</plugin>

<!-- web容器插件 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<version>2.2</version>

<configuration>

<!-- 端口號 -->

<port>8080</port>

<!-- 支持熱部署 -->

<contextReloadable>true</contextReloadable>

</configuration>

</plugin>

</plugins>

</build>

  finalName

  sourceDirectory

  resources

  testSourceDirectory

  testResources

  plugins

   編譯插件

<!-- 編譯插件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.1</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

<encoding>utf-8</encoding>

</configuration>

</plugin>

    maven-compiler-plugin(3.1)

   tomcat服務器插件

<!-- web容器插件 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<version>2.2</version>

<configuration>

<!-- 端口號 -->

<port>8080</port>

<!-- 支持熱部署 -->

<contextReloadable>true</contextReloadable>

</configuration>

</plugin>

    tomcat7-maven-plugin(2.2)

 依賴jar包配置

SpringMVC與Spring整合

SpringMVC + Spring整合:

- 拷貝JAR包.

- 修改web.xml文件.

a.配置SpringMVC的核心控制器.

b.配置Web應用啟動時自動創建spring容器.

 

- 增加SpringMVC的配置文件.

- 增加Spring的配置文件,如果配置文件名不是默認的,還需要在web.xml文件指定Spring文件的路徑.

 

----------------------經過上面幾步,整合成功-----------------------

接下來的開發很簡單:

Controller開發(但Controller不要主動new Service組件,只要有setter)、配置,與不整合Spring基本一樣.

Service組件配置在Spring容器中.

注意:Controller中需要依賴的Service對象要與Service類的配置ID必須相同.

修改web.xml文件

<!-- 配置工程的編碼過濾器(spring提供) -->

<filter>

<filter-name>charsetEncoding</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>

</filter>

<filter-mapping>

<filter-name>charsetEncoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

 

 

 

基礎的項目結構:

 

 配置Spring4核心監聽器(Web應用啟動時自動創建spring容器)

<!--

配置Spring4核心監聽器 (配置Web應用啟動時自動創建spring容器)

ContextLoaderListener默認加載WEB-INF/applicationContext.xml文件

-->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

 

-----------------------------------------------------------------------------------------------------

 

<!-- 配置Spring4需要的配置文件位置(如果有多個配置文件或配置文件不是默認的文件名) -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/applicationContext.xml,/WEB-INF/applicationContext-dao.xml</param-value>

</context-param>

 

<!--配置到classpath目錄下加載配置文件-->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

 

 

  WEB-INF/applicationContext.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-4.2.xsd">

 

<!-- 掃描指定的包,會自動掃描子包 -->

<context:component-scan base-package="org.oa"/>

 

</beans>

 

  web.xml

<!DOCTYPE web-app PUBLIC

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd" >

 

<web-app>

<display-name>OA</display-name>

 

<!-- 配置工程的編碼過濾器(spring提供) -->

<filter>

<filter-name>charsetEncoding</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>

</filter>

<filter-mapping>

<filter-name>charsetEncoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- 配置spring監聽器,負責spring容器的創建和管理 -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<!-- 配置spring監聽器,負責spring容器的創建和管理 end-->

<!-- springmvc配置 -->

<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>

</servlet>

 

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

<!-- springmvc配置 end -->

 

</web-app>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM