配置SSM的一些坑


准备工具

jdk8、 eclipse、tomcat8.5、maven3.3.9、mysql5.5


配置过程

一、创建maven项目

     首先通过eclipse创建maven project,并选择maven-archetype-webapp,创建完成后会出现几个小错误,一个是HttpServlet这个父类在Java Build Path中找不到,另一个是环境不支持,需要在pom.xml中添加一个maven编译插件,都是一些百度就能解决的问题

二、完善项目结构

     在添加完编译插件之后,项目中会多出两个文件夹,此时我们再创建一个src/test/resources的文件夹,就配置好了标准的maven project了,之后我们可以在project facets中把动态web module调整到自己环境支持的最新版本(版本越高性能越好,如果不能修改可以直接进入文件目录手动修改),相应的,我们的web.xml的规范也要改到相应的版本

三、实体类与库表设计

     这部分我们要对自己的项目的系统功能进行划分,并设计相应的实体类和数据表,我们在src/main/java的package下创建一个entity,并把我们的实体类都创建在这里,具体的实体的设计不是本文的重点,这里略过

四、配置maven

  1. 在src/main/resources下创建spring、mapper文件夹分别来存放spring配置信息、dao中每个方法的sql
  2. 在src/main/java的package下创建web(controller层)存放controller控制器、service文件夹(业务逻辑层)和service.impl(业务逻辑实现)、dao(数据/库的操作,使用mybatis)、dto、enums(枚举)、interceptor(拦截器)、 util(通用工具类)
  3. 在pom.xml中配置项目需要使用的jar包,这里附上部分代码:
   <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.12</version>
     <scope>test</scope>
   </dependency>
   <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
   <dependency>
   	<groupId>ch.qos.logback</groupId>
   	<artifactId>logback-classic</artifactId>
   	<version>1.2.3</version>
   </dependency>
   <!-- Spring -->
   <!-- 1)包含spring框架基本的核心工具类 。spring其他组件要都要使用到这个包里的类,是其他组件的基本核心-->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-core</artifactId>
   	<version>${spring.version}</version>
   </dependency>
   <!-- 2)这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of control
   /Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core以及
   spring-beans.jar文件就行了 -->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-beans</artifactId>
   	<version>${spring.version}</version>
   </dependency>
   <!-- 3)这个jar文件为spring核心提供了大量扩展。可以找到使用spring ApplicationContext特性时所需的全部..
   所需的全部类,instrumentation组件以及校验Validation方面的相关类 -->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-context</artifactId>
   	<version>${spring.version}</version>
   </dependency>
   <!-- 4)这个jar文件包含对spring对JDBC数据访问进行封装的所有类 -->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-jdbc</artifactId>
   	<version>${spring.version}</version>
   </dependency>
   <!-- 5)为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理 -->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-tx</artifactId>
   	<version>${spring.version}</version>
   </dependency>
   <!-- 6)spring web 包含web应用开发时,用到spring框架时所需的核心类,包括自动载入webApplicationControl -->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-web</artifactId>
   	<version>${spring.version}</version>
   </dependency>
   <!-- 7)包含springMVC框架相关的所有类 -->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-webmvc</artifactId>
   	<version>${spring.version}</version>
   </dependency>
   <!-- 8)对JUNIT等测试框架的简单封装 -->
   <dependency>
   	<groupId>org.springframework</groupId>
   	<artifactId>spring-test</artifactId>
   	<version>${spring.version}</version>
   	<scope>test</scope>
   </dependency>
   <!-- servlet web -->
   <dependency>
   	<groupId>javax.servlet</groupId>
   	<artifactId>javax.servlet-api</artifactId>
   	<version>3.1.0</version>
   </dependency>
   <!-- json解析 -->
   <dependency>
   	<groupId>com.fasterxml.jackson.core</groupId>
   	<artifactId>jackson-databind</artifactId>
   	<version>2.8.7</version>
   </dependency>
   <!-- Map工具类 对标准Java collection的扩展 spring-core.jar需commons-collections.jar -->
   <dependency>
   	<groupId>commons-collections</groupId>
   	<artifactId>commons-collections</artifactId>
   	<version>3.2</version>
   </dependency>
   <!-- DAO:MyBatis -->
   <dependency>
   	<groupId>org.mybatis</groupId>
   	<artifactId>mybatis</artifactId>
   	<version>3.4.2</version>
   </dependency>
   <dependency>
   	<groupId>org.mybatis</groupId>
   	<artifactId>mybatis-spring</artifactId>
   	<version>1.3.1</version>
   </dependency>
   <!-- 数据库 -->
   <dependency>
   	<groupId>mysql</groupId>
   	<artifactId>mysql-connector-java</artifactId>
   	<version>5.1.37</version>
   </dependency>
   <dependency>
   	<groupId>c3p0</groupId>
   	<artifactId>c3p0</artifactId>
   	<version>0.9.1.2</version>
   </dependency>
 </dependencies>

五、逐层进行SSM配置

  1. 数据库
       在src/main/resources下创建并编写数据库配置文件jdbc.properties、mybatis-config.xml(百度一大堆)
  2. spring
       在刚才创建的spring文件夹下分别创建spring-dao.xml(这里的扫描dao的接口包名一定要写对,不然会扫描不到,第一次就是因为这里漏了一个单词报错)
       dao层之上就是我们的service层spring-service.xml(这里是第二个坑,项目在tomcat跑起来的时候一直报错:通配符的匹配很全面, 但无法找到元素 ‘mvc:resources’,网上说是关于命名空间的错误,按照网上的方法改了好几次还是报错&nbsp最后发现是自己的resources写成了recources ,改过来之后,程序又报了一个beans后需要有>或/>,但是我明明加了>。后来发现因为上面的代码是我直接复制网上的,中间可能多了一些空格,格式化代码后终于解决了)
       spring的配置已经完成,我们接着要在web.xml将spring的配置整合:
  <servlet>
	<servlet-name>spring-dispatcher</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring/spring-*.xml</param-value>
	</init-param>
</servlet>
<servlet-mapping>
	<servlet-name>spring-dispatcher</servlet-name>
	<!--默认匹配所有的请求-->
	<url-pattern>/</url-pattern>
</servlet-mapping>

六、总结

首先,在pom.xml中指定工程中依赖的jar包;其次,在jdbc.properties中定义数据库的连接方式,紧接着创建mybatis-config.xml来完成对mybatis的配置;然后,在spring-dao.xml中完成对jdbc.properties和mybatis-config.xml的加载,并创建datasource连接池;接着创建spring-service.xml,将datasource注入到事务管理器中;创建spring-web.xml,定义dispatcher如何相应url请求(即controller的行为);最后在web.xml将spring-dispatcher当作servlet注册,并整合spring-*.xml
附结构图:在这里插入图片描述

发布了11 篇原创文章 · 获赞 8 · 访问量 1459

猜你喜欢

转载自blog.csdn.net/qq_40783693/article/details/104277501