ssm理解

122 阅读3分钟

这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战

在ssm框架整合之前可以先了解一些这篇文章,或许对其理解更有帮助吧:CSDN 在这篇文章中对比可以看出SpingMVC Spring Mybatis所对应的层 (ssm框架采用的是xml+注解  工具:Idea)这里就不一一的在这里贴源码,只贴主要的源码说明,整个源码上传至github 可以看着源码看以下的步骤(需要自行下载):

service层及连接了controller层又连接了dao层 所以我们进行三大框架的整合应从Spring框架开始(我们现在要有这样一个思想:

controller层比较依赖service层 service层比较依赖dao层)

1.前期环境搭建

1.1创建数据库和表结构

create database ssm;
create table account(id int primary key auto_increment,username varchar(20),money double);

1.2创建maven工程 并创建相应的包目录 如下

1.3 修改pom.xml文件(导入相关的依赖)

1.4编写相应的代码(其实这一层的编写和上一篇文章编写的代码时一样的 这里换了一个例子)

1.4.1编写domain层代码(就是加载实体类)

1.4.2编写dao层接口

1.4.3编写service层接口和实现类

接口层:

实现层:

1..5controller层(先等等再写!)

2.配置Spring环境(我们先要搭建好环境并测试是否搭建成功 才与其他框架进行整合)

2.1编写配置文件applicationContext.xml

我们将开启注解扫描(注意注解扫描并不是扫描全部 只需要扫描service层和dao层就好了,我们不扫描controller层 留给SpringMVC去管理)

 <!---开启注解扫描-->
    <context:component-scan base-package="com.ssm">
        <!--不扫描-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

2.2测试是否成功:(测试主要是调用service层方法)

3测试成功 将Spring MVC与Spring进行整合

3.2首先编写web.xml文件

3.2编写springmvc.xml文件

3.3测试springMVC环境搭建是否成功

表现层:编写页面index.jsp

控制层:编写AccountCotroller.java

之后在开启服务器看测试情况:点击index.jsp页面测试后页面后 后台打印出测试成功

插播:1,服务器启动后,应用被加载,读取web.xml的配置文件 

            2.浏览器发送请求被DispatherServlet捕获 并根据请求的URL去转发匹配@RequestMapping中的内容(所以在这个测试中要注意action提交的路径)匹配成功后返回一个值

            3.根据返回对应的值,借助视图解析器找到对应的视图 渲染视图返回浏览器

3.4将spring与springMVC整合

注意: 我们知道web层是依赖于service层的 所以我们整合就是要让controller层能够调用service层的方法

因此我们在启动项目时我们的服务器会去读取web.xml文件 并加载springmvc.xml文件 我们要spring整合springmvc就需要在项目启动时去加载applicationContext.xml文件  如何加载呢?这就需要在web.xml文件中配置一个监听器:ContextLoaderListener监听器(具体相关知识可以看这篇博文:Spring中ContextLoaderListener作用 - 守护月光 - 博客园

3.5此时就可以在controller层中调用service层的业务方法

业务层

测试:spring和springmvc整合成功

4现在将spring和mybatis进行整合

4.1搭建mybatis环境 写SqlMapConfig.xml文件(这里只是测试环境搭建 后面整合这段配置会删除)

4.2在dao层接口中进行数据的增删改查(利用注解的方法)

4.3测试mybatis环境是否搭建成功

4.4环境测试成功 现在将spring与mybatis进行整合

注意:service层要依赖dao层 所以思想和spring和springmvc整合思路差不多 在加载applicationContext.xm文件的时候就需要把SqlMapConfig.xml文件一起加载了 因此怎样将SqlMapConfig.xml文件的内容加载到applicationContext.xml文件中呢?修改applicationContext.xml文件

此时SqlMapConfig.xml文件就可以删除了

4.5进行测试

将查询的数据返回到页面list.jsp

controller层修改

list.jsp打印输出即可完成

小结:ssm框架的整合1.我们在整合之前首先应该分别测试该框架环境是否是正确的 如果这一点都不满足 后面就没必要继续了 

                                    2.从spring为出发点分别整合springmvc框架和mybatis框架 其中spring与springmvc框架主要是项目在启动                                         时加载web.xml时就需要把spring框架的配置文件也同时读取  spring与mybatis框架整合时 即在加载                                               spring框架配置文件时就应该加载Mybatis框架的配置文件 (以上仅是个人的理解 欢迎大佬指正)

进阶:在设计数据库操作时需要考虑事务控制  如何进行事务控制呢?

修改applicationContext.xml文件添加:

index.jsp(表现层)

AccountController(控制层)

AccountService(业务层方法)

AccountDao(dao层)

运行前

运行后:

注:来自自己博客