一、新建Maven项目
1、打开idea,点击File->New->Project 这时会弹出个窗口,我们创建maven项目,选择本地jdk版本,勾选复选框“Create from archetype”使用原型模版快速创建,在下拉选项中选择”webapp”,点击【Next】
2、在该面板中填写maven坐标”groupId”,”artifactId”,以及”version”,之后点击【Next】
3、在接下来面板中选择本地maven,比如我的maven选择如下,选择完成之后点击【Next】
4、弹出窗口,项目名称,项目本地地址,点击【Finish】
5、之后idea就会自动创建maven项目,选择”Enable Auto-Import”,这里maven将自动下载导入一系列maven依赖,将花费一些时间。
6、嗒哒~~ 创建好的maven web项目结构如下:
7、还需要一些文件夹我们手动创建,在main右键,New->Directory创建目录取名为java:
8、右键,将java文件夹标记为为源码文件夹:
9、同理在main目录下创建目录取名为resources,并标记为资源文件夹,这里不再上图。
10、创建与main同级的test目录,按照同样的方法在该目录下创建java测试源码文件和resources测试资源文件。
至此我们的maven web项目就建好了~
嗒哒~
另外也可在项目上右键选择选择Open Module Settings打开模块设置管理目录:
我们这样搭目录是为了符合Maven项目的规范
二、文件配置
pom.xml
项目的架子搭好了,这时我们需要引入项目所需要的jar包,而maven会依据pom.xml文件去下载相应的jar包。因此我们只要在pom.xml文件引入这些jar包的依赖配置就可以了。主要有单元测试的,日志的,spring的,mybatis相关的,数据库相关的这几类jar包,这些jar包可在maven仓库中找。
比如我们需要junit jar包:
粘贴到pom.xml文件中即可。
项目需要的jar包是千篇一律的,这里相关功能说明如下:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<!-- 为单元测试提供类的支持 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 使用范围:测试环境 -->
<scope>test</scope>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<!-- 使用范围:不写的情况下默认为compile,即线上环境和测试环境-->
</dependency>
<!-- spring -->
<!-- spring-core 包含spring框架基本的核心工具类。spring其他组件都要使用到这个包里的类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- spring-beans 该jar文件是所有应用都用得到的,它包含访问配置文件、创建和管理bean
以及进行IOC/DI所涉及到的基础类的支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- spring-context 为spring核心提供了大量的扩展,包括springApplicationContext所需的类、
instrumentation组件以及校验validation相关类-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- spring-jdbc 包含Spring对jdbc数据访问进行的封装的所有类,为Spring访问数据提供支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- spring-tx 做一些事务处理,为JDBC、Hibernate、JDO、JPA、mybatis等提供一致的声明式和编程式事务管理-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- spring-web 包含web应用开发时spring框架所需的类-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- spring-webmvc 包含mvc框架的所有类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- spring-test 测试环境用到的对Junit框架的简单封装 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.6.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- javax.servlet-api 提供servlet服务 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
<scope>provided</scope>
</dependency>
<!-- jackson-databind 解析json -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
<!--commons-collections MAP工具类是对标准Java collection的一个扩展 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<!-- 数据访问相关 -->
<!-- mybatis DAO Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- mybatis-spring spring与mybatis做一个衔接融合 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 数据库 -->
<!-- mysql-connector-java 支持jdbc与mysql的交互 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- c3p0 连接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
</dependencies>
逐层完成SSM的各项配置
- 在src/main/resources/创建数据库配置文件:jdbc.propetites
- 在src/main/resources/创建mybatis的配置文件:mybatis-config.xml
- 在src/main/resources/spring/下创建spring各层配置文件:spring-dao.xml、spring-service.xml、spring-web.xml
- 配置WEB-INF下的web.xml文件
文件配置大同小异,可按需自行网上搜索~
SpringMVC:DispatchServlet
前端控制器DispatchServlet是整个MVC框架的核心,主要要来拦截符合要求的外部请求,并把请求分发到不同的控制器中,根据控制器处理的结果,生成相应的响应发送到客户端。
Spring:IOC和AOP
IOC:由Spring来控制对象的生命周期和对象间的关系。IOC是通过DI即依赖注入来实现的。组件之间的依赖关系由容器在运行期决定,IOC动态将依赖关系动态的注入到组建件中。
AOP:面向切面编程,AOP的实现方式是动态代理。
MyBatis:ORM
ORM:关系映射,对象和数据库之间的映射,将程序中的对象自动持久化到关系数据库之中。