本项目是@尚硅谷相关视频的记录。html
本项目使用Maven构建,工程架构以下图所示:前端
1、公司的公共父工程和工具类包
1.父工程
每一个公司都有本身的父工程java
父工程做用:对公司使用的jar包进行统一管理,别的工程须要继承公司的父工程mysql
父工程必须是pomgit
项目的打包类型:pom、jar、wargithub
pom ---------> 父类型都为pom类型web
jar ---------> 内部调用或者是做服务使用spring
war ---------> 须要部署的项目sql
packing默认是jar类型数据库
项目中通常使用maven进行模块管理,每一个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系。项目模块化能够将通用的部分抽离出来,方便重用;修改一部分代码再也不是build整个项目,缩短了build时间;此外各模块都有本身的pom文件,结构更清晰。
pom文件除了GAV(groupId, artifactId, version)是必需要配置的,另外一个重要的属性就是packaging打包类型,全部的父级项目的packaging都为pom,packaging默认是jar类型,若是不做配置,maven会将该项目打成jar包。
使用maven进行模块划分管理,通常都会有一个父级项目,做为父级项目,还有一个重要的属性,那就是modules,经过modules标签将项目的全部子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,而后依次build。
而对于各个子项目,须要在其对应的pom文件开头申明对父级项目的引用,经过GAV实现。对于子项目本身的GAV配置,GV若是不配置,则会从父级项目的配置继承过来。子模块可经过dependencies标签来添加本身的依赖,此外子类项目的packaging值只能是war或者jar。若是是须要部署的项目,则须要打包成war类型,若是只是内部调用或者是做服务使用,则推荐打包成jar类型。
1)建立新的工做集,命名为scw
在Eclipse中使用Working set管理项目 https://jingyan.baidu.com/article/e4511cf343a3f22b845eaf21.html
2)建立父工程
pom文件:
<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.atguigu.project</groupId> <artifactId>project-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <!-- 父工程中作依赖管理:jar包的版本控制等都在这里 --> <properties> <!-- 公共依赖 --> <commons-io.version>2.5</commons-io.version> <commons-lang3.version>3.6</commons-lang3.version> <commons-codec.version>1.10</commons-codec.version> <commons-beanutils.version>1.9.3</commons-beanutils.version> <commons-collections.version>3.2.2</commons-collections.version> <commons-math3.version>3.6.1</commons-math3.version> <commons.fileupload>1.3.2</commons.fileupload> <commons-email.version>1.4</commons-email.version> <!-- junit --> <junit.version>4.12</junit.version> <!-- 时间日期操做 --> <joda-time.version>2.9.9</joda-time.version> <!-- httpclient --> <httpclient.version>4.5.3</httpclient.version> <!-- 功能组件 --> <poi.version>3.16</poi.version> <quartz.version>2.2.3</quartz.version> <!-- 数据库 --> <!--druid:德鲁伊,数据库链接池 --> <druid.version>1.1.0</druid.version> <mysql.connector>5.1.42</mysql.connector> <!-- 基础框架 --> <spring.version>4.3.8.RELEASE</spring.version> <mybatis.version>3.4.3</mybatis.version> <mybatis.spring.version>1.3.1</mybatis.spring.version> <!-- 分页 --> <pagehelper.version>5.0.3</pagehelper.version> <!-- jackson --> <jackson.version>2.7.4</jackson.version> <!-- MBG --> <mbg.version>1.3.5</mbg.version> <!-- 日志 --> <log4j.version>1.2.17</log4j.version> <slf4j.version>1.7.6</slf4j.version> <!-- servlet-api,jsp-api,jstl --> <servlet-api.version>2.5</servlet-api.version> <jsp-api.version>2.2</jsp-api.version> <jstl.version>1.2</jstl.version> <!-- email,commons,httpclient...activiti... --> <activiti.version>5.22.0</activiti.version> <activiti.spring.version>5.22.0</activiti.spring.version> </properties> <!-- 依赖管理 --> <dependencyManagement> <dependencies> <!-- 公共依赖 --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>${commons-codec.version}</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>${commons-beanutils.version}</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>${commons-collections.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>${commons-math3.version}</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>${commons.fileupload}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>${commons-email.version}</version> </dependency> <!--公共依赖结束 --> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- 时间日期 --> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>${joda-time.version}</version> </dependency> <!-- httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>${httpclient.version}</version> </dependency> <!-- 其余功能性组件 --> <!-- poi:文档操做 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${poi.version}</version> </dependency> <!-- quartz:石英调度 --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${quartz.version}</version> </dependency> <!-- 数据库模块 --> <!-- 链接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency> <!-- 驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.connector}</version> </dependency> <!-- 基础框架 --> <!-- Spring配置 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</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>${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-orm</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-webmvc-portlet</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis配置 --> <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>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> <!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <!-- MBG --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>${mbg.version}</version> </dependency> <!-- 工做流 --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>${activiti.version}</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>${activiti.spring.version}</version> </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> <!-- 依赖的WEB类库 --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>${jsp-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> </dependencies> </dependencyManagement> </project>
Maven中POM.XML详解 http://www.javashuo.com/article/p-rciuhgau-dv.html
这个pom.xml主要由三部分组成:GAV等信息,properties和dependencyManagement,properties指定了依赖的版本,dependencyManagement指定了依赖。
用到的依赖:
公共依赖 | commons-io |
commons-lang3 | |
commons-codec | |
commons-beanutils | |
commons-collections | |
commons-math3 | |
commons-fileupload | |
commons-email | |
数据库 | druid 链接池 |
mysql-connector-java 驱动 | |
基础框架 | Spring |
mybatis | |
WEB类库 | jsp-api |
servlet-api | |
jstl | |
日志 | log4j |
slf4j-log4j12 | |
slf4j-api | |
工做流 | activiti-engine |
activiti-spring | |
其余 | mybatis-generator-core |
jackson | |
pagehelper 分页 | |
junit | |
joda-time 时间 | |
httpclient | |
poi 文档操做 | |
quartz 石英调度 |
2.公司工具类的包
公司除了父工程之外,终年累月还会积累不少工具类,这些经常使用的工具类会存放在同一个地方。
创建新的maven工程
<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.atguigu.project</groupId> <artifactId>project-commons</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <!-- 公司工具类 --> <parent> <groupId>com.atguigu.project</groupId> <artifactId>project-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <!-- 导入公共依赖的一些包 --> <dependencies> <!-- 公共依赖 --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> </dependency> <!--公共依赖结束 --> </dependencies> </project>
继承公共父工程
该包可能会用到公共依赖,引入公共依赖
2、项目的父工程
下面开始咱们本身工程的构建
咱们的项目也须要一个父工程,scw-parent,选择pom
<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> <parent> <groupId>com.atguigu.project</groupId> <artifactId>project-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> </project>
继承公司的公共父工程project-parent
3、项目分模块
咱们的项目是分模块构建的
新建一个项目,这个项目聚合了后台功能的各个模块,所以打包方式要选pom,这样才能够在该项目下建立maven模块
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.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <modules> <module>manager-pojo</module> <module>manager-dao</module> <module>manager-service</module> <module>manager-web</module> </modules> </project>
继承项目父工程scw-parent
项目分为四个模块manager-pojo、manager-dao、manager-service和manager-web
pojo里是经常使用的JavaBean
service里是业务逻辑
dao是数据库相关
4、建立模块
一共四个模块manager-pojo、manager-dao、manager-service和manager-web
manager-web要选择war包,一个聚合父项目应该只有一个war包
右键web项目,选择Build Path,选择Configure Build Path...
选Project Facets
Eclipse的Project Facets属性
咱们建立了war包,可是web项目还没配置好,还要从新选择并配置Dynamic Web Mobile,设置webapp的路径。
取消Dynamic Web Mobile,点apply,再从新选中
出现下面红线内容,点击
Content directory输入src/main/webapp
webapp在项目中的位置以下图:
5、各模块间依赖的配置
四个模块共同点:都要继承scw-manager,所以都有:
<parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
dao依赖pojo,service依赖dao,web依赖service
dao的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> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>manager-pojo</artifactId> </project>
dao依赖pojo
dao的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> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>manager-dao</artifactId> <dependencies> <dependency> <groupId>com.atguigu.scw</groupId> <artifactId>manager-pojo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
service依赖dao
service的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> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>manager-service</artifactId> <dependencies> <dependency> <groupId>com.atguigu.scw</groupId> <artifactId>manager-dao</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
web依赖service
web的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> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>manager-web</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>com.atguigu.scw</groupId> <artifactId>manager-service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
聚合好后,各个项目依赖关系创建好,依赖的模块可使用被依赖模块的jar包,如commons引入service后,web也可使用,可是上层的没法使用。
<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> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>manager-dao</artifactId> <dependencies> <dependency> <groupId>com.atguigu.scw</groupId> <artifactId>manager-pojo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- 和数据库有关的放在该层 --> <!-- 数据库模块 --> <!-- 链接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> <!-- 驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- mybatis配置 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <!-- MBG --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> </dependency> </dependencies> </project>
service引入公司的工具类commons依赖和IOC框架,除MVC觉得的Spring框架
<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> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>manager-service</artifactId> <dependencies> <dependency> <groupId>com.atguigu.scw</groupId> <artifactId>manager-dao</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.atguigu.project</groupId> <artifactId>project-commons</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- 存放IOC框架 --> <!-- Spring配置 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> </dependencies> </project>
web引入其余jar包
<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> <parent> <groupId>com.atguigu.scw</groupId> <artifactId>scw-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>manager-web</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>com.atguigu.scw</groupId> <artifactId>manager-service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc-portlet</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <!-- 分页 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> </dependency> <!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <!-- 日志 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <!-- 依赖的WEB类库 --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> </dependencies> </project>
项目完整关系图:
6、测试
pojo下建立Person
package com.atguigu.scw.manager.bean; public class Person {}
web下建立HelloController
package com.atguigu.scw.manager.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.atguigu.scw.manager.bean.Person; @Controller public class HelloController { @RequestMapping("hello") public String hello() { Person person = new Person(); return "/success.jsp"; } }
web 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" 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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"> <context:component-scan base-package="com.atguigu"></context:component-scan> </beans>
webapp下
建立index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <a href="hello">hello</a> </body> </html>
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>你好</h1> </body> </html>
前端控制器
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- The front controller of this Spring Web application, responsible for handling all application requests --> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- Map all requests to the DispatcherServlet for handling --> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
运行tomcat,浏览器访问