基于SpringBoot的完成SSM整合项目开发

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 基于SpringBoot的完成SSM整合项目开发

1. 整合JUnit


问题导入

回忆一下Spring整合JUnit的步骤?


1.1 Spring整合JUnit(复习)


809a2e16a98765e1310385789428bd54_6a9a464e883053edf14c2da07e7d3575.png


1.2 SpringBoot整合JUnit


【第一步】添加整合junit起步依赖(可以直接勾选)


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>


【第二步】编写测试类,默认自动生成了一个


@SpringBootTest
class Springboot07JunitApplicationTests {
    @Autowired
    private BookService bookService;
    @Test
    public void testSave() {
        bookService.save();
    }
}


2. 基于SpringBoot实现SSM整合


问题导入

回忆一下Spring整合MyBatis的核心思想?


2.1 Spring整合MyBatis(复习)


SpringConfig


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


JDBCConfig


定义数据源(加载properties配置项:driver、url、username、password)
#jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_db
jdbc.username=root
jdbc.password=itheima


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 getDataSource() {
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setUsername(userName);
        ds.setPassword(password);
        return ds;
    }
}



MyBatisConfig


定义SqlSessionFactoryBean
定义映射配置
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) {
    SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
    ssfb.setTypeAliasesPackage("com.itheima.domain");
    ssfb.setDataSource(dataSource);
    return ssfb;
}


@Bean
public MapperScannerConfigurer getMapperScannerConfigurer() {
    MapperScannerConfigurer msc = new MapperScannerConfigurer();
    msc.setBasePackage("com.itheima.dao");
    return msc;
}


2.2 SpringBoot整合MyBatis


SpringBoot整合Spring(不存在)

SpringBoot整合SpringMVC(不存在)

SpringBoot整合MyBatis(主要)

①:创建新模块,选择Spring初始化,并配置模块相关基础信息


8153a33058f69a72ac66f18189a360cb_f59912f94c75e7ba41d54e83fe97ffb7.png


②:选择当前模块需要使用的技术集(MyBatis、MySQL)


059fa019df31c1fe3f7186908276dc80_808665442d6a73509750892a509f3482.png


③:设置数据源参数


spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource


注意事项:


SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区,或在MySQL数据库端配置时区解决此问题


jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC


④:定义数据层接口与映射配置


@Mapper
public interface UserDao {
    @Select("select * from tbl_book where id=#{id}")
    Book getById(Integer id);
}


⑤:测试类中注入dao接口,测试功能


@SpringBootTest
class Springboot08MybatisApplicationTests {
    @Autowired
    private BookDao bookDao;
    @Test
    public void testGetById() {
        Book book = bookDao.getById(1);
        System.out.println(book);
    }
}


2.3 案例-SpringBoot实现ssm整合


【第一步】创建SpringBoot工程,添加druid依赖


<!-- todo 1 添加druid连接池依赖-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.6</version>
</dependency>


【第二步】复制springmvc工程各种资源(主java类、页面、测试类)


【第三步】删除config包中的所有配置,在BookDao接口上加@Mapper注解


//todo 3 在BookDao接口上加@Mapper注解,让SpringBoot给接口创建代理对象
@Mapper
public interface BookDao {
    //...
}


【第四步】将application.properties修改成application.yml,配置端口号和连接参数


server:
  port: 80
# todo 4 配置数据库连接参数
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource


【第五步】修改BookServiceTest配置类,进行配置


// todo 5 修改单元测试类,添加@SpringBootTest主键,修复@Test注解导包
@SpringBootTest
public class BookServiceTest {
    @Autowired
    private BookService bookService;
    @Test
    public void testGetById(){
        Book book = bookService.getById(2); //传递参数1会抛出异常
        System.out.println(book);
    }
    @Test
    public void testGetAll(){
        List<Book> all = bookService.getAll();
        System.out.println(all);
    }
}



【第六步】在static目录中提供index.html页面,跳转到"pages/books.html"


<script>
    location.href="pages/books.html"
</script>


最后:运行引导类即可访问

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
463 37
|
7月前
|
JavaScript Java 测试技术
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
51 1
|
7月前
|
JavaScript Java 测试技术
基于小程序的外卖小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的外卖小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
51 2
|
7月前
|
JavaScript Java 测试技术
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
42 1
|
7月前
|
JavaScript Java 测试技术
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
40 1
|
7月前
|
JavaScript Java 测试技术
基于微信小程序的校园综合服务平台ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的校园综合服务平台ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
68 1
|
7月前
|
Java 关系型数据库 MySQL
SpringBoot整合JUnit、MyBatis、SSM
SpringBoot整合JUnit、MyBatis、SSM
46 4
|
XML Java 关系型数据库
SpringBoot的基本使用(整合SSM)
SpringBoot的基本使用(整合SSM)
409 0
SpringBoot的基本使用(整合SSM)
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
166 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
108 62