【JavaWeb项目】一个众筹网站的开发(一)架构搭建
本项目是@尚硅谷相关视频的记录。
本项目使用Maven构建,工程架构如下图所示:
一、公司的公共父工程和工具类包
1.父工程
每个公司都有自己的父工程
父工程作用:对公司使用的jar包进行统一管理,别的工程需要继承公司的父工程
父工程必须是pom
项目的打包类型:pom、jar、war
pom ---------> 父类型都为pom类型
jar ---------> 内部调用或者是作服务使用
war ---------> 需要部署的项目
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详解 https://www.cnblogs.com/sharpest/p/5969566.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>
继承公共父工程
该包可能会用到公共依赖,引入公共依赖
二、项目的父工程
下面开始我们自己工程的构建
我们的项目也需要一个父工程,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
三、项目分模块
我们的项目是分模块构建的
新建一个项目,这个项目聚合了后台功能的各个模块,因此打包方式要选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是数据库相关
四、创建模块
一共四个模块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在项目中的位置如下图:
五、各模块间依赖的配置
四个模块共同点:都要继承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>
项目完整关系图:
六、测试
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,浏览器访问
【JavaWeb项目】一个众筹网站的开发(一)架构搭建的更多相关文章
- 【JavaWeb项目】一个众筹网站的开发(八)后台页面详细设置
一.user.jsp改造 删除引入菜单 抽取导航栏 nav-bar.jsp,删除引入导航栏 删除引入main.jsp的到好烂 数据库里添加url 报错,url不对 没有/ url正确 action=& ...
- 【JavaWeb项目】一个众筹网站的开发(五)后台用户登录功能
用户模块 1)注册 表单校验,使用校验插件 用户密码需要加密存储 注册成功后来到管理控制台,将用户放在session中,防止以后获取 以后用户经常获取用户id,使用mabatis主键自增策略,保存用户 ...
- 【JavaWeb项目】一个众筹网站的开发(四)后台用户注册功能
重点: 密码加密存储 使用jQuery插件做校验和错误提示等 密码不能明文存储,在数据库中是加密存储的 可逆加密:通过密文使用解密算法得到明文 DES AES 不可逆加密:通过密文,得不到明文 MD5 ...
- 【JavaWeb项目】一个众筹网站的开发(九)邮件开发
Java官方支持邮件开发,Javax-mail jdk中默认没有,需要另外下载 apache的基于Javax-mail开发了commons-mail,更加简单高效,推荐使用 一.电子邮件接收和发送协议 ...
- 【JavaWeb项目】一个众筹网站的开发(六)后台用户权限控制
登陆成功进入控制面板后 左侧的菜单是共同的元素,抽取出来做静态包含 要求必须是按照不同的用户得到不同的菜单 用户做了权限限制,哪个用户能操作哪些内容(链接.按钮.内容) 一.RBAC权限模型 权限管理 ...
- 【JavaWeb项目】一个众筹网站的开发(三)第一个网页
一.bootstrap 本项目采用bootstrap3 bootstrap中文网 https://www.bootcss.com/ 使用bootstrap三步: 1.导入jQuery 2.导入boot ...
- 【JavaWeb项目】一个众筹网站的开发(二)架构搭建之架构测试
1.dao层和pojo都是使用mbg生成,基本的CRUD以及JavaBean 2.将mbg放在dao层,一旦dao层打包以后mbg就删除掉 一.创建数据库用于测试 数据库名称:scw_0325 SQL ...
- 【JavaWeb项目】一个众筹网站的开发(七)后台用户菜单
mvn命令不能运行: jar-war-pom之间是可以直接写,优先找这个工程,而不是仓库的位置 pom-pom子父关系,需要去仓库中找,我们需要使用<relativePath>../pro ...
- Springmvc+Spring+Mybatis整合开发(架构搭建)
Springmvc+Spring+Mybatis整合开发(架构搭建) 0.项目结构 Springmvc:web层 Spring:对象的容器 Mybatis:数据库持久化操作 1.导入所有需要的jar包 ...
随机推荐
- JPush极光推送Java服务器端实例
import cn.jpush.api.JPushClient; import cn.jpush.api.common.resp.APIConnectionException; import cn.j ...
- BZOJ 4484: [Jsoi2015]最小表示(拓扑排序+bitset)
传送门 解题思路 \(bitset\)维护连通性,给每个点开个\(bitset\),第\(i\)位为\(1\)则表示与第\(i\)位联通.算答案时显然要枚举每条边,而枚举边的顺序需要贪心,一个点先到达 ...
- 重新认识new
前言 感谢大佬:https://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html www.cplusplus.com 因为这段时间在重 ...
- idea中git回退远程仓库版本
工作中遇到,代码已提交并已提交到远程仓库,现需要回退到之前版本,记录如下: 记录当前版本的版本号和需要回退到版本的版本号. current version:85e7f32dfe421c5892a4e2 ...
- configure error C compiler cannot create executables错误解决
我们在编译软件的时候,是不是经常遇到下面的错误信息呢? checking build system type... i686-pc-linux-gnuchecking host system ty ...
- Django-自定义用户模型
Django最方便的一点,是自带用户系统,但有些情况下,不符合项目需求, 原因1.我们有时候需要自定义一些字段,或者删除Django自带字段,2.我们有时候需要定义哪些字段是必填的,登陆时的用户名是哪 ...
- golang 国内环境配置
写在 .bashrc 或 .zshrc 等文件中: # golang env export GO111MODULE=on export GOPROXY=https://goproxy.cn #七牛云提 ...
- appium报错及解决方案
[已解决]mac上手动打开appium报错:“Could not find aapt Please set the ANDROID_HOME environment variable with the ...
- JPA、Hibernate、Spring Data JPA 的关系,你懂吗?
来源:https://my.oschina.net/u/3080373/blog/1828589 什么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表 ...
- 56.Decode String(解码字符串)
Level: Medium 题目描述: Given an encoded string, return it's decoded string. The encoding rule is: k[e ...