2020.6.23Java学习笔记————SSM框架(Spring+SpringMVC+MyBatis)初学带源码

这篇博客详细记录了初学者如何在IDEA中从零开始搭建和配置SSM(Spring+SpringMVC+MyBatis)项目。通过一步步创建Maven项目,配置依赖,编写实体类, Dao接口,Service接口和实现类,以及Spring和SpringMVC的配置,最终实现与数据库的交互。博主在实践中遇到的问题,如依赖版本不匹配和数据库连接问题,也在文中给出了解决方案。此外,还分享了对SpringBoot简化SSM整合的理解以及前端页面美观性的思考。
摘要由CSDN通过智能技术生成

Java学习笔记————SSM框架(Spring+SpringMVC+MyBatis)初学带源码

最近加入公司的新项目组,项目主要是一个web系统,具体实现为Java的SSM框架加Mysql加公司密码设备。之前一直做的C++方面工作,现在要开始学习Java的SSM框架。

首先,在网上找到了一位大佬写的SSM整合框架介绍,很详细,一层层的将框架从spring到springMVC再到MyBatis逐步整合为一个项目,感觉比其他将这三个框架一起写完再讲解整个项目的文章来说要对我们新手更加友好,可以让新手更直观的看清每个框架的依赖加入项目后复制的是哪一部分的功能。

史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)

唯一美中不足的是我按照这篇教程逐步写下来之后发现项目运行不成功,文章自带的源码也过期了下载不了,就很难受。
不过后面我发现项目的错误信息主要是java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer; 和另一个NullPointer的空指针问题,主要原因在于项目依赖包的版本问题,后来我也自己解决了。

这里记录一下整合SSM框架的基本流程和各层package的用法。

第一步:创建Maven项目:

IDEA配置Maven

Maven配置主要步骤就是下载maven,设置环境变量,设置本地仓库,整合到IDEA。

创建Maven项目:
IDEA-》create new project -》Maven -》create from archetype -》
org.apache.maven.archetypes:maven-archetype-webapp

在这里插入图片描述
注意在选择type时不要选错,我一开始创建项目时没仔细看,以为选择webapp就可以,结果选择了上面的cocoon-22的webapp,创建后的项目结构与教程不一致,排查了好久才发现是type选错了。
选好archetype后设置项目名称,保存目录以及maven版本,项目创建完成。
在这里插入图片描述
创建后等一会maven自动加载数据包,加载成功后结构如上,会自带一个maven的项目依赖控制文件pom.xml,项目需要加载的包和插件过会就写在这个pom文件中。
然后在IDEA界面的右上角找到带蓝色方块的文件夹型键project structure,
在这里插入图片描述

进入project structure -》Modules,在右侧的文件管理中创建如下几个文件夹,顺便按照颜色和类型将其Mark as一下。
在这里插入图片描述
target文件夹不用创建,在src.main下创建java和resources文件夹并将其Mark as 为Sources和Resources即可。

首先展示一下项目最后的文件结构:
在这里插入图片描述
这个结构也是按照博客教程来创建的。

第二步,依赖文件pom.xml:

依赖文件用于控制maven项目中的依赖数据包和插件的导入和版本信息。
pom.xml文件可以像上面博客文章中按整合顺序依次加入数据包和插件依赖语句,也可以直接一次性将需要的依赖语句写入文件。
我的pom.xml是从别的项目里扒过来的,会有一些类似fastjson的与SSM框架无关的数据包,介意的可以自己照着教程博客里的pom.xml把多余的依赖删掉,对整体SSM框架无影响。

我的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>com.fasp</groupId>
  <artifactId>SSMDemo</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SSMDemo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <javax-activation.version>1.1</javax-activation.version>
    <!-- 4.3.7 ApplicationContext-mvc.xml误报红叉,但不影响正常运行 -->
    <spring.version>4.3.7.RELEASE</spring.version>
    <!--<spring.version>4.2.9.RELEASE</spring.version>-->
    <mysql-connector-java.version>5.1.34</mysql-connector-java.version>
  </properties>

  <repositories>
    <repository>
      <id>central</id>
      <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
    </pluginRepository>
  </pluginRepositories>

  <dependencies>

    <!-- spring start -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</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-beans</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-core</artifactId>
      <version>${
   spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-dao</artifactId>
      <version>2.0.8</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</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-mock</artifactId>
      <version>2.0.8</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${
   spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</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-web</artifactId>
      <version>${
   spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${
   spring.version}</version>
    </dependency>
    <!-- spring end -->

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${
   mysql-connector-java.version}</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <version>1.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.james</groupId>
      <artifactId>apache-mime4j</artifactId>
      <version>0.6.1</version>
    </dependency>
    <dependency>
      <groupId>asm</groupId>
      <artifactId>asm</artifactId>
      <version>3.3.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.axis</groupId>
      <artifactId>axis</artifactId>
      <version>1.4</version>
    </dependency>
    <dependency>
      <groupId>cglib</groupId>
      <artifactId>cglib-nodep</artifactId>
      <version>3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值