首页 > 其他分享 >【Spring教程31】SSM框架整合实战:从零开始学习SSM整合配置,如何编写Mybatis SpringMVC JDBC Spring配置类

【Spring教程31】SSM框架整合实战:从零开始学习SSM整合配置,如何编写Mybatis SpringMVC JDBC Spring配置类

时间:2023-12-28 11:34:23浏览次数:22  
标签:jdbc 创建 SpringMVC Spring 配置 SSM dataSource 整合 步骤



目录

  • 1 流程分析
  • 2 整合配置
  • 2.1 步骤1:创建Maven的web项目
  • 2.2 步骤2:添加依赖
  • 2.3 步骤3:创建项目包结构
  • 2.4 步骤4:创建SpringConfig配置类
  • 2.5 步骤5:创建JdbcConfig配置类
  • 2.6 步骤6:创建MybatisConfig配置类
  • 2.7 步骤7:创建jdbc.properties
  • 2.8 步骤8:创建SpringMVC配置类
  • 2.9 步骤9:创建Web项目入口配置类


欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》,本文的上一篇为《Rest风格简介与RESTful入门

【Spring教程31】SSM框架整合实战:从零开始学习SSM整合配置,如何编写Mybatis SpringMVC JDBC Spring配置类_SSM

前面我们已经把Mybatis、Spring和SpringMVC三个框架进行了学习,今天主要的内容就是把这三个框架整合在一起完成我们的业务功能开发,具体如何来整合,我们一步步来学习。

1 流程分析

(1) 创建工程

  • 创建一个Maven的web工程
  • pom.xml添加SSM需要的依赖jar包
  • 编写Web项目的入口配置类,实现AbstractAnnotationConfigDispatcherServletInitializer重写以下方法
  • getRootConfigClasses() :返回Spring的配置类->需要SpringConfig配置类
  • getServletConfigClasses() :返回SpringMVC的配置类->需要SpringMvcConfig配置类
  • getServletMappings() : 设置SpringMVC请求拦截路径规则
  • getServletFilters() :设置过滤器,解决POST请求中文乱码问题
    (2)SSM整合[重点是各个配置的编写]
  • SpringConfig
  • 标识该类为配置类 @Configuration
  • 扫描Service所在的包 @ComponentScan
  • 在Service层要管理事务 @EnableTransactionManagement
  • 读取外部的properties配置文件 @PropertySource
  • 整合Mybatis需要引入Mybatis相关配置类 @Import
  • 第三方数据源配置类 JdbcConfig
  • 构建DataSource数据源,DruidDataSouroce,需要注入数据库连接四要素,@Bean @Value
  • 构建平台事务管理器,DataSourceTransactionManager,@Bean
  • Mybatis配置类 MybatisConfig
  • 构建SqlSessionFactoryBean并设置别名扫描与数据源,@Bean
  • 构建MapperScannerConfigurer并设置DAO层的包扫描
  • SpringMvcConfig
  • 标识该类为配置类 @Configuration
  • 扫描Controller所在的包 @ComponentScan
  • 开启SpringMVC注解支持 @EnableWebMvc
    (3)功能模块[与具体的业务模块有关]
  • 创建数据库表
  • 根据数据库表创建对应的模型类
  • 通过Dao层完成数据库表的增删改查(接口+自动代理)
  • 编写Service层[Service接口+实现类]
  • @Service
  • @Transactional
  • 整合Junit对业务层进行单元测试
  • @RunWith
  • @ContextConfiguration
  • @Test
  • 编写Controller层
  • 接收请求 @RequestMapping @GetMapping @PostMapping @PutMapping @DeleteMapping
  • 接收数据 简单、POJO、嵌套POJO、集合、数组、JSON数据类型
  • @RequestParam
  • @PathVariable
  • @RequestBody
  • 转发业务层
  • @Autowired
  • 响应结果
  • @ResponseBody

2 整合配置

掌握上述的知识点后,接下来,我们就可以按照上述的步骤一步步的来完成SSM的整合。

2.1 步骤1:创建Maven的web项目

可以使用Maven的骨架创建

【Spring教程31】SSM框架整合实战:从零开始学习SSM整合配置,如何编写Mybatis SpringMVC JDBC Spring配置类_spring_02

2.2 步骤2:添加依赖

pom.xml添加SSM所需要的依赖jar包

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.itheima</groupId>
	<artifactId>springmvc_08_ssm</artifactId>
	<version>1.0-SNAPSHOT</version>
	<packaging>war</packaging>
	
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.2.10.RELEASE</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>5.2.10.RELEASE</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>5.2.10.RELEASE</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.6</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.0</version>
		</dependency>
		
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.47</version>
		</dependency>
		
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.16</version>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.9.0</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.1</version>
					<configuration>
					<port>80</port>
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

2.3 步骤3:创建项目包结构

【Spring教程31】SSM框架整合实战:从零开始学习SSM整合配置,如何编写Mybatis SpringMVC JDBC Spring配置类_mybatis_03

  • config目录存放的是相关的配置类
  • controller编写的是Controller类
  • dao存放的是Dao接口,因为使用的是Mapper接口代理方式,所以没有实现类包
  • service存的是Service接口,impl存放的是Service实现类
  • resources:存入的是配置文件,如Jdbc.properties
  • webapp:目录可以存放静态资源
  • test/java:存放的是测试类

2.4 步骤4:创建SpringConfig配置类

@Configuration
@ComponentScan({"com.itheima.service"})
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MyBatisConfig.class})
@EnableTransactionManagement
public class SpringConfig {
}

2.5 步骤5:创建JdbcConfig配置类

public class JdbcConfig {
	@Value("${jdbc.driver}")
	private String driver;
	@Value("${jdbc.url}")
	private String url;
	@Value("${jdbc.username}")
	private String username;
	@Value("${jdbc.password}")
	private String password;
	@Bean
	public DataSource dataSource(){
		DruidDataSource dataSource = new DruidDataSource();
		dataSource.setDriverClassName(driver);
		dataSource.setUrl(url);
		dataSource.setUsername(username);
		dataSource.setPassword(password);
		return dataSource;
	}
	@Bean
	public PlatformTransactionManager transactionManager(DataSource
	dataSource){
		DataSourceTransactionManager ds = new DataSourceTransactionManager();
		ds.setDataSource(dataSource);
		return ds;
	}
}

2.6 步骤6:创建MybatisConfig配置类

public class MyBatisConfig {
	@Bean
	public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
		SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
		factoryBean.setDataSource(dataSource);
		factoryBean.setTypeAliasesPackage("com.itheima.domain");
		return factoryBean;
	}
	@Bean
	public MapperScannerConfigurer mapperScannerConfigurer(){
		MapperScannerConfigurer msc = new MapperScannerConfigurer();
		msc.setBasePackage("com.itheima.dao");
		return msc;
	}
}

2.7 步骤7:创建jdbc.properties

在resources下提供jdbc.properties,设置数据库连接四要素

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database_name
jdbc.username=root
jdbc.password=root

2.8 步骤8:创建SpringMVC配置类

@Configuration
@ComponentScan("com.itheima.controller")
@EnableWebMvc
public class SpringMvcConfig {
}

2.9 步骤9:创建Web项目入口配置类

public class ServletConfig extends
AbstractAnnotationConfigDispatcherServletInitializer {
	//加载Spring配置类
	protected Class<?>[] getRootConfigClasses() {
		return new Class[]{SpringConfig.class};
	}
	//加载SpringMVC配置类
	protected Class<?>[] getServletConfigClasses() {
		return new Class[]{SpringMvcConfig.class};
	}
	//设置SpringMVC请求地址拦截规则
	protected String[] getServletMappings() {
		return new String[]{"/"};
	}
	//设置post请求中文乱码过滤器
	@Override
	protected Filter[] getServletFilters() {
		CharacterEncodingFilter filter = new CharacterEncodingFilter();
		filter.setEncoding("utf-8");
		return new Filter[]{filter};
	}
}

至此SSM整合的环境就已经搭建好了。在这个环境上,我们如何进行功能模块的开发呢?我们下一节开始学习如何进行功能模块开发


标签:jdbc,创建,SpringMVC,Spring,配置,SSM,dataSource,整合,步骤
From: https://blog.51cto.com/u_12948819/9011989

相关文章

  • 【SpringBoot快速入门】(1)SpringBoot的开发步骤、工程构建方法以及工程的快速启动详
    目录SpringBoot简介1SpringBoot快速入门1.1开发步骤1.1.1创建新模块1.1.2创建Controller1.1.3启动服务器1.1.4进行测试2对比3官网构建工程3.1进入SpringBoot官网3.2选择依赖3.3生成工程4SpringBoot工程快速启动4.1问题导入4.2打包4.3启动之前我们已经学习的Sprin......
  • 在Spring Cloud中使用RabbitMQ完成一个消息驱动的微服务
    SpringCloud系列目前已经有了SpringCloud五大核心组件:分别是,Eureka注册中心,Zuul网关,Hystrix熔断降级,openFeign声明式远程调用,ribbon负载均衡。这五个模块,对了,有没有发现,其实我这五个模块中ribbon好像还没有案例例举,目前只有一个Ribbon模块的搭建,后边我会完善的。今天我们不主要围......
  • 在Spring Cloud中使用Zuul网关实现一个案例
    本篇依旧是在SpringCloud系列的博主已经搭建的SpringCloud微服务模块上进行的,注意,本文依旧适合初学者和或者在SpringCloud框架了解不是很深入的基础的开发者,本系列说不上有多高大上,博主坚持通过简单的案例,让开发者可以对SpringCloud的组件进行了解和使用,并在一定程度上介绍这些......
  • 在Spring Cloud中使用Hystrix服务完成熔断降级处理
    举例上次发布博文隔了好几天了,今天我们重点围绕SpringCloud的Hystrix服务的熔断降级处理进行,在之前篇的文章中,我们完成了SpringCloud的各个微服务模块的搭建,这个是既往的事实,如果你还不知道该如何搭建SpringCloud微服务,请参照我之前发的文章,SpringCloud系列文章就行。正式开始......
  • SpringBoot 整合 ShardingSphere JDBC、MySQL分表实例
    1.概述ShardingSphere分为ShardingSphere-JDBC、ShardingSphere-Proxy、ShardingSphere-Sidecar(TODO)。ShardingSphere官方手册:传送门;这里使用的是ShardingSphere-JDBC,ShardingSphere-JDBC为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar......
  • Spring IoC(控制反转)、DI(依赖注入)
    1.IoCIoC(InversionofControl,控制反转)面向对象的一种设计思想,很多语言的框架都使用了IoC这个设计思想,并非特属于Spring,其实现为将实例对象交给第三方容器管理,创建实例对象的时候,注入这些实例对象所依赖的实例对象,而不是在内部创建。所谓的内部创建如下所示,连接数据库的DateSour......
  • Spring之RestTemplate使用小结
    Spring之RestTemplate使用小结1.基本接口捞出源码,看一下其给出的一些常用接口,基本上可以分为下面几种//get请求public<T>TgetForObject();public<T>ResponseEntity<T>getForEntity();//head请求publicHttpHeadersheadForHeaders();//post请求publicURI......
  • 基于ssm“魅力”繁峙宣传网站的设计与实现
    随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;“魅力”繁峙宣传网站系统当然也不能排除在外,随着网络技术的不断成熟,带动了“魅力”繁峙宣传网站系统的发展,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这......
  • 基于SSM的宠物领养系统
    本课题是根据用户的需要以及网络的优势建立的一个宠物领养系统,来满足用宠物领养的需求。本宠物领养系统应用JSP技术,Java语言,MYSQL数据库存储数据,基于B/S结构开发。在网站的整个开发过程中,首先对系统进行了需求分析,设计出系统的主要功能模块,其次对网站进行总体规划和详细设计,最后对......
  • 【Spring】SpringMVC项目升级成SpringBoot实践
    将SpringMVC项目升级为SpringBoot项目需要一系列详细的步骤。以下是一个更详细的步骤指南:项目初始化:创建一个新的SpringBoot项目。您可以使用SpringInitializr或SpringBoot的Maven插件来快速生成项目结构。依赖管理:在新项目中,添加所需的依赖。根据您的项目需求,添加SpringBoot......