文章目录

  • 前言
    • 一.SpringBoot
    • 二.起步依赖的引入
    • 三.服务器切换
    • 四.多环境开发
    • 五.整合Junit
    • 六.整合Mybatis
      • 6.1定义实体类
      • 6.2定义dao接口
      • 6.3定义测试类
      • 6.4编写配置
      • 6.5测试
      • 6.6使用Druid数据源

前言

整理完SSM的零零碎碎,也是按部就班开启了SpringBoot之旅,Boot的引入加速了传统的SSM开发,给我最深的一个印象就是它的内部自动集成了Tomcat,当我们运行Application类时,资源就被自动部署到了Tomcat中,其次,是起步依赖的引入,也极大的简化了SSM文件繁琐的配置工程。

以前说过,从繁至简是贯彻框架学习的原始真解,Boot的出现更是这一真理的进一步论证!

一.SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

按下这个按钮,一切仿佛都被加速,相比于曾经的SSM开发
我们通过一个经典的MVC案例来好好感受一下Boot带给我们的极速体验吧

1.还是老套路,类头上写上注解配置请求路径,编写一个GET请求,并且return做出反馈

@RestController
@RequestMapping("/books")
public class BootController {@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println("id ==> "+id);return "hello , spring boot!";}}

2.启动项目的引导类

3.启动SpringBoot项目过后的运行窗口

4.我们利用Postman来进行一个简单的接口测试,测试一下项目功能是否健全

二.起步依赖的引入

为了解决因插件版本不同而导致的冲突问题,boot为我们事先配置好了许多不同版本的插件,当我们使用时,选择既定的boot版本即可自动匹配一套完美契合的插件,极大提高了配置难度。

曾经,懒羊羊刚学习Javaweb时,就因为忽略了tomcat和servlet—api的版本一致问题导致MVC的项目无论如何也运行不成功,可以说是走了很多弯路啊~
不过现在看来SpringBoot的出现,提高开发效率的同时也为我们屏蔽掉了大量不必要的麻烦

三.服务器切换

我们都知道boot内置了tomcat,每当创建好一个web项目,默认都是他,如何更改内置的服务器呢?
这需要用到maven中的排除依赖,找到web插件所在的依赖,排除掉Tomcat即可,就像这样

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>

然后我们更换上Jetty服务器的依赖即可完成boot项目服务器切换

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

四.多环境开发

多环境开发配置也是必会的一项操作,以yaml格式的配置文件为例,分别对生产环境、测试环境、开发环境三者之间进行切换

#设置启用的环境
spring:profiles:active: ${profile.active}---
#开发环境
spring:profiles: dev
server:port: 55
---
#生产环境
spring:profiles: pro
server:port: 66
---
#测试环境
spring:profiles: test
server:port: 77
---

五.整合Junit

在SSM的基础上Spring boot整合junit就变得非常简单,注入测试的类,写上@Test注解即可

@SpringBootTest(classes = SpringbootTestApplication.class)
class SpringbootTestApplicationTests {@Autowiredprivate BookService bookService;@Testpublic void save() {bookService.save();}
}

为何会如此简便?
那是因为我们的boot引导类充当了配置类,@SpringBootApplication中封装了包扫描的注解(追源码还是会发现@Configuration注解),引导类所在位置的包会全部被扫描

所以说boot在这方面并没有带来什么新颖的功能,而是进一步封装了SSM的配置

六.整合Mybatis

6.1定义实体类

com.yu7daily.domain 包下定义实体类 Book,内容如下

public class Book {private Integer id;private String name;private String type;private String description;//setter and  getter//toString
}

6.2定义dao接口

com.yu7daily.dao 包下定义 BookDao 接口,内容如下

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

6.3定义测试类

test/java 下定义包 com.yu7daily ,在该包下测试类,内容如下

@SpringBootTest
class SpringbootMybatisApplicationTests {@Autowiredprivate BookDao bookDao;@Testvoid testGetById() {Book book = bookDao.getById(1);System.out.println(book);}
}

6.4编写配置

我们代码中并没有指定连接哪儿个数据库,用户名是什么,密码是什么。所以这部分需要在 SpringBoot 的配置文件中进行配合。

application.yml 配置文件中配置如下内容

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_dbusername: rootpassword: root

6.5测试

运行测试方法,我们会看到如下错误信息

org.springframework.beans .factory.UnsatisfiedDependencyException: Error creating bean with name

错误信息显示在 Spring 容器中没有 BookDao 类型的 bean。为什么会出现这种情况呢?
MyBatis是通过扫描接口利用自动代理创建对象交给Spring的IOC来集中管理,我们从始至终好像没有定义扫描的接口,所以我们需要指出扫描的接口!而我们要解决这个问题需要在BookDao 接口上使用 @MapperBookDao 接口改进为

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

注意:

SpringBoot 版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区 jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC,或在MySQL数据库端配置时区解决此问题

6.6使用Druid数据源

现在我们并没有指定数据源,SpringBoot 有默认的数据源,我们也可以指定使用 Druid 数据源,按照以下步骤实现

  • 导入 Druid 依赖

    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version>
    </dependency>
    
  • application.yml 配置文件配置

    可以通过 spring.datasource.type 来配置使用什么数据源。配置文件内容可以改进为

    spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: 284650type: com.alibaba.druid.pool.DruidDataSource
    

【SpringBoot】SSM“加速器”SpringBoot初体验相关推荐

  1. 【微服务】SpringBoot 搭建微服务初体验

    SpringBoot 搭建微服务初体验 前言 Server端程序开发 1.创建Server项目,并添加依赖 2.引入依赖,完善配置文件 3.开发SQL语句 4.开发JavaBean 5.开发DAO接口 ...

  2. centos安装rabbitmq_【SpringBoot MQ系列教程】RabbitMq 初体验

    SpringBoot 系列教程之 RabbitMq 初体验​mp.weixin.qq.com mq 在异步解耦削峰的优势非常突出,现在很多的项目都会用到,掌握 mq 的知识点,了解如何顺畅的使用 mq ...

  3. springboot初体验以及解决遇到的问题

    2020版本以及后面的设置 #后面配置maven同上 File -> new project settings -> settings for new projects idea的版本不用 ...

  4. smart-doc初体验-springboot生成自动文档

    smart-doc初体验 一.为什么要引入smart-doc? 二.对比swagger 三.使用 四.讨论 1.设计先行模式 2.代码先行 五.体验 六.附录 1.完整的配置项: 2.官方地址: 一. ...

  5. 基于SpringBoot+SSM实现的Dota2资料库智能管理平台

    基于SpringBoot+SSM实现的Dota2资料库智能管理平台 Dota2资料库智能管理平台的设计与实现 摘    要 当今社会,游戏产业蓬勃发展,如PC端的绝地求生.坦克世界.英雄联盟,再到移动 ...

  6. ssm框架整合_框架整合战斗压缩粮篇SpringCloud+SpringBoot+SSM

    各位小伙伴今天又敲了多少Bug了,今天改Bug又花了多长时间啦,我们每天就是敲Bug,敲完改,改完敲,习惯就好啦,心态摆正.Debug起来!!! 上次是Dubbo整合,今天终结篇Cloud整合,不要废 ...

  7. 超全流程-idea对springboot+ssm的部署实现增删改查

    由于前段时间完成期末项目,在期末学科里也学到很多,但这里不书写接近2个月没有更新博客, 因为之前有过较为成熟的ssh框架运用以及理解的经验,我打算在寒假学习一下ssm,联合springboot, 学习 ...

  8. javaWeb的线下服装店管理平台、基于ssm(springboot版本也有)+mysql线下服装销售系统

    主要技术 SpringBoot\SSM(两个版本都有) HTML.jQuery.HTML.CSS.JS Mysql bootstrap 开发工具和环境 Eclipse\idea(都可以)兼容 Mave ...

  9. 基于javaweb+springboot的医院管理系统(java+Springboot+ssm+mysql+maven)

    基于javaweb+springboot的医院管理系统(java+Springboot+ssm+mysql+maven) 一.项目简述 功能:该项目是用springboot+layui+shiro写的 ...

最新文章

  1. OpenAI新发现:GPT-3做小学数学题能得55分,验证胜过微调!
  2. ASP.NET MVC之从控制器传递数据到视图四种方式(一)
  3. 解决在Mac上用pyenv安装python3失败的问题
  4. python zlib字符串压缩
  5. svn认证失败,解决方案
  6. AcWing之找出数组中重复的数字
  7. C/C++开发工具大比拼【转】
  8. 马斯克在推特暗示将亲自负责一款社交媒体App开发
  9. hdu 4006 The kth great number (优先队列)
  10. 程序员是如何做到随时随地编程的?
  11. Eigen教程(5)之块操作
  12. Crush Crouse 心理学笔记
  13. java mail报权限问题
  14. JDY-31蓝牙模块测试
  15. R的可视化以及ggplot2
  16. wow(3) : 宏命令
  17. projece修改工期_project里工期如何更改为自然日
  18. mysql update join 更新_mysql多表join时候update更新数据的方法 | 很文博客
  19. landsat7数据预处理
  20. 教你轻松构建asp.net网站框架

热门文章

  1. 星起航:抖音小店项目值得投资吗?
  2. 什么是社交牛杂症?什么是社交牛逼症?什么是社恐?
  3. swan在linux系统下怎么运行,在Ubuntu 18.04/16.04 LTS上安装Libreswan的方法
  4. 虚幻4-初识蓝图“设置操控器旋转“
  5. ERP-SAP服务器集群架构技术沿革
  6. 读取eml格式文件,并解析
  7. 基于ijkplayer封装的UE4安卓播放器插件
  8. 计算机的指令系统、控制器和运算器
  9. ClusterManager 源码及原理学习
  10. 渗透项目(八):IMF-1