IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 配置SSM框架整合项目 -> 正文阅读

[Java知识库]配置SSM框架整合项目

1、SSM是什么?

从框架方面来说,它并不是指一个或某个框架,它是三个框架的缩写,简称为SSM。
这三个框架分别是:Spring、SpringMVC、Mybatis

Spring的存在意义?

Spring方便解耦,简化了开发,通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过渡耦合。

用户也不必再为单例模式类,属性文件解析等这些很底层的需求编写代码,可以更专注于上层应用。

它支持AOP编程与声明式事务控制,这样可以提高开发的效率。
而这些仅仅只是Spring的一部分

SpringMVC的存在意义?

SpringMVC是一种基于JAVA的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,以及融合在Spring Web Flow中。
它在SSM框架中,主要担任了Web方面的支持抵住。在SSM中大部分都会在SpringMVC中进行配置而不是Spring

MyBatis的存在意义?

mybatis 是一个优秀的基于java的持久层(Dao)框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。

mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句

最后 mybatis 框架执行sql 并将结果映射为java对象并返回。采用ORM(对象关系映射)思想解决了实体和数据库映射问题,对jdbc进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作

2、配置对应JAR包

这里我用两种方式来进行配置,一种为Maven,一种为基础导入Jar包方式。
但两种方式的前提,都是需要先新创建一个空项目哦!

Maven的配置方式

1.为空项目添加Maven的框架支持

在项目右键中点击【添加框架支持】,选择Maven和Web应用程序这两个选项
请添加图片描述
请添加图片描述

2.在pom.xml文件中配置对应JAR包

主要需要的是Spring的jar

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>
<!--jar包可能不全-->

这些jar包都是Spring与SpringMVC所需要的,至于Mybatis,我pom文件中找不到mybatis-jar包,所以我需要单独的引入。
请添加图片描述

Mybatis这边需要的是mybatis-jar和mybatis-spring-jar包,后面跟了个spring的,就代表它支持Spring框架

3.全部以依赖方式添加

如果不使用Maven的话,直接在项目中使用依赖方式添加jar包,也是可以的
在【添加框架支持】阶段,就可以把Spring和SpringMVC给勾选上了,这样就自动完成了Spring和SpringMvc的支持

配好后,项目依赖中应有这些jar包
请添加图片描述

3、配置【配置文件】

0.需要创建的层级:

  • controller层
    该层下需要创建对应的控制器Servlet
  • POJO文件夹
    该层下需要创建与数据库对应的POJO类
  • mapper层
    该层下需要创建Mapper的接口实现
  • service层
    该层下需要创建业务层的接口及其接口实现

最后的项目结构应是这样
请添加图片描述

1.配置ApplicationContext.xml

ApplicationContext.xml为Spring的核心配置文件,在这里,我们需要配置如下:

  • 组件扫描
  • 数据源
  • Mybatis
  • 事务
<context:component-scan base-package="com.demonode">
    <!-- 排除controller层;因为controller层是由springMvc进行管理 -->
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm_integration"/>
    <property name="user" value="root"/>
    <property name="password" value="root"/>
</bean>

<!--    ######################################## 配置Mybatis #########################################-->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--        加载数据源-->
    <property name="dataSource" ref="dataSource"></property>
<!--        加载mybatis核心配置文件-->
    <property name="configLocation" value="classpath:configuration.xml"></property>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" id="configurer">
    <property name="basePackage" value="com.demonode.mapper"></property>
</bean>

<!--    ########################################### 事务控制 #######################################-->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>

<!--   配置事务增强方法 - *默认全部-->
<tx:advice id="interceptor">
    <tx:attributes>
        <tx:method name="*"/>
    </tx:attributes>
</tx:advice>

<aop:config>
<!--        配置impl服务层下实现接口的所有方法都进行事务控制-->
    <aop:advisor advice-ref="interceptor" pointcut="execution(* com.demonode.service.impl.*.*(..))"></aop:advisor>
</aop:config>

2.配置spring-mvc.xml

该配置文件为SpringMvc的配置文件,但在SSM整合中Spring-mvc文件的绝大部分配置都交由给了Spring类配置
因此它的内部东西很少

 <!-- 组件扫描 -->
 <context:component-scan base-package="com.demonode.controller"></context:component-scan>

<!--    配置mvc注解驱动-->
 <mvc:annotation-driven></mvc:annotation-driven>

<!--    内部视图解析器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/page/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

<!--    开放内部资源-->
<mvc:default-servlet-handler></mvc:default-servlet-handler>

3.配置configuration.xml

该文件为Mybatis的配置文件,其内容主要交由给了Spring进行配置,而大多时候,Mybatis的使用都是用的注解,所以在内部所管理的东西很少,顶多就是配置下别名而已

<!--    核心配置文件已转交给Spring进配置-->

<typeAliases>
    <typeAlias type="com.demonode.entityclass.Person" alias="person"></typeAlias>
</typeAliases>

4、测试

使用Tomcat进行测试后,对一些必要类进行注解的配置,最终可以完成项目的运行
请添加图片描述

5、总结

可能在近几年或往后将使用SpringBoot+MybatisPuls来进行开发,但SSM依旧是经典,并且是基础,而一部分老项目中都是用着SSM来进行开发,因此SSM所带来的方便还是有用的。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:48:02  更:2022-05-21 18:48:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/29 11:47:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码