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

posted on 2018-01-31 22:32  東風★破  阅读(1841)  评论(0)    收藏  举报

导航