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

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
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
相关文章
|
2月前
|
JavaScript Java 测试技术
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
22 1
|
2月前
|
JavaScript Java 测试技术
基于小程序的外卖小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的外卖小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
25 2
|
2月前
|
JavaScript Java 测试技术
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
19 1
|
2月前
|
JavaScript Java 测试技术
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
25 1
|
2月前
|
JavaScript Java 测试技术
基于微信小程序的校园综合服务平台ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的校园综合服务平台ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
23 1
|
2月前
|
Java 关系型数据库 MySQL
SpringBoot整合JUnit、MyBatis、SSM
SpringBoot整合JUnit、MyBatis、SSM
31 4
|
2月前
|
前端开发 JavaScript Java
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
|
XML Java 关系型数据库
SpringBoot的基本使用(整合SSM)
SpringBoot的基本使用(整合SSM)
354 0
SpringBoot的基本使用(整合SSM)
|
4天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的大学生心理健康诊断专家系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的大学生心理健康诊断专家系统的详细设计和实现(源码+lw+部署文档+讲解等)
16 0
|
4天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的大学生成绩管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的大学生成绩管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
13 0