SpringBoot入门及整合

前言

Spring Boot是一个基于Spring框架的快速开发脚手架,它简化了Spring应用的初始化和搭建过程,提供了众多便利的功能和特性并且使用"习惯优于配置"的理念,通过提供默认设置来快速搭建应用,同时也保留了灵活性以进行定制

SpringBoot入门及整合_第1张图片

一.SpringBoot简介

1.简介

SpringBoot 基于 Spring 开发。SpringBoot 本身并不提供 Spring 框架的核心特性以及扩展功能,也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具

  关于 SpringBoot 有一句很出名的话就是约定大于配置。采用 Spring Boot 可以大大的简化开发模式,它集成了大量常用的第三方库配置,所有你想集成的常用框架,它都有对应的组件支持,例如 Redis、MongoDB、Jpa、kafka,Hakira 等等。SpringBoot 应用中这些第三方库几乎可以零配置开箱即用,大部分的 SpringBoot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

2.特点

独立运行的 Spring 项目:Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。

内嵌 Servlet 容器:Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。

提供 starter 简化 Maven 配置:Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。

提供了大量的自动配置:Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。

自带应用监控:Spring Boot 可以对正在运行的项目提供监控。

无代码生成和 xml 配置:Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。

二.快速入门

1.SpringBoot创建 

idea左上角new--project新建项目

更改SpringBoot应用脚手架下载地址为阿里云

https://start.aliyun.com/

SpringBoot入门及整合_第2张图片

SpringBoot入门及整合_第3张图片

 点击下一步准备SpringBoot版本和相关依赖

SpringBoot入门及整合_第4张图片

 创建完成后会进行一个相应依赖和SpringBoot版本的下载

注意:因为会下载pom依赖,所以需要去配置相应的Maven仓库

2.SpringBoot目录介绍

src/main/java:主程序入口 Application,可以通过直接运行该类来启动SpringBoot应用

src/main/resources:配置目录,该目录用来存放应用的一些配置信息,比如应用名、服务端口、数据库配置等。由于我们应用了Web模块,因此产生了 static目录与templates目录,前者用于存放静态资源,如图片、CSS、JavaScript等;后者用于存放Web页面的模板文件。

src/test:单元测试目录,生成的 ApplicationTests 通过 JUnit4实现,可以直接用运行 SpringBoot应用的测试。

application.properties/application.yml:Ø 用于存放程序的各种依赖模块的配置信息,比如:服务端口,数据库连接配置等。

注意点:我们的Java文件也就是main-java,运行文件必须与启动文件xxxApplication处于同级目录下,才能保证能够正常运行

3.文件配置

application.propertiesapplication.yml 都是用于配置Spring Boot应用程序的配置文件,它们之间的主要区别在于格式和书写风格。

3.1 格式

1.application.properties:使用简单的键值对(key=value)的格式

2.application.yml:使用更为结构化的 YAML(YAML Ain't Markup Language)格式

3.2 书写风格:

application.properties 相对简单,适合简单的键值对配置。

application.yml 具有更好的可读性和层次结构,适合较为复杂的配置,尤其是涉及到嵌套属性和列表的情况。

3.3 嵌套属性:

application.properties 在application.properties中,嵌套属性通常通过点(.)来表示,例如 spring.datasource.url

application.yml 在application.yml中,嵌套属性通过缩进来表示层次关系,例如上面的 spring.datasource.url

3.4列表属性:

application.properties 列表属性通常通过逗号分隔,例如 my.list.property=value1,value2,value3

application.yml 列表属性通过使用连字符(-)和缩进来表示

小结:总体来说,选择使用application.properties还是application.yml取决于你的个人偏好和项目需求。简单的键值对配置可以使用application.properties,而更为复杂的结构化配置则可以使用application.yml。在实际应用中,一般来说,两者都能满足大多数的配置需求。

 3.5 application.properties 转 application.yml

安装插件

SpringBoot入门及整合_第5张图片

右击application.properties配置文件

SpringBoot入门及整合_第6张图片 

会自动为我们转换格式为yml键值对

4.启动项目

默认情况下,SpringBoot 项目会创建一个名为 ***Application 的主程序启动类,该类中使用了一个组合注解 @SpringBootApplication,用来开启 Spring Boot 的自动配置,另外该启动类中包含一个 main() 方法,用来启动该项目。

直接运行启动类 HelloworldApplication 中的 main() 方法,便可以启动该项目,结果如下图:

SpringBoot入门及整合_第7张图片

为了能比较的清楚的看到效果,我们在 com.zking.springboot01 包下又创建一个 controller 包,并在该包内创建一个名为 HelloController 的 Controller,代码如下:

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "Hello SpringBoot!!!";
    }
}

 注意:Spring Boot 内部集成了 Tomcat,不需要人为手动配置 Tomcat,开发者只需要关注具体的业务逻辑即可。

重启 SpringBoot 项目,然后在地址栏访问 “http://localhost:8080/hello”  

三. SpringBoot整合

1.整合JDBC

1.导入相关依赖


    org.springframework.boot
    spring-boot-starter-jdbc


    mysql
    mysql-connector-java
    5.1.44

2.在application.yml中添加数据源配置

spring:
    # 数据源配置
    datasource:
        url: jdbc:mysql://localhost:3306/bookshop
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver

2.整合Mybatis

1.添加相关依赖


    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.3.0

2.在application.yml中添加Mybatis配置

# 配置Mybatis
mybatis:
    # Mapper.xml所在位置
    mapper-locations: classpath*:mapper/*.xml
    # 配置别名扫描实体类所在的包
    type-aliases-package: com.yu.boot.pojo

3.启动类上添加@MapperScan注解:

@MapperScan("com.yu.boot.mapper")
public class BootApplication {
    public static void main(String[] args) {
        SpringApplication.run(BootApplication.class, args);
    }

}

3.整合PageHelper

1.导入依赖


    com.github.pagehelper
    pagehelper-spring-boot-starter
    1.3.0


    org.springframework.boot
    spring-boot-starter-aop

2.修改application.yml配置文件

#pagehelper分页插件配置
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

4.整合Druid数据库连接池

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

1.导入依赖


    com.alibaba
    druid-spring-boot-starter
    1.2.16

2.修改application.yml配置文件 

spring:
  datasource:
    #1.JDBC
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/vue?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: 1234
    druid:
      #2.连接池配置
      #初始化连接池的连接数量 大小,最小,最大
      initial-size: 5
      min-idle: 5
      max-active: 20
      #配置获取连接等待超时的时间
      max-wait: 60000
      #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 30000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: true
      test-on-return: false
      # 是否缓存preparedStatement,也就是PSCache  官方建议MySQL下建议关闭   个人建议如果想用SQL防火墙 建议打开
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filter:
        stat:
          merge-sql: true
          slow-sql-millis: 5000
      #3.基础监控配置
      web-stat-filter:
        enabled: true
        url-pattern: /*
        #设置不统计哪些URL
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-enable: true
        session-stat-max-count: 100
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: true
        #设置监控页面的登录名和密码
        login-username: admin
        login-password: admin
        allow: 127.0.0.1
        #deny: 192.168.1.100

5.整合Log日志

1.修改application.yml配置文件 

logging:
    level:
    #指定项目目录输入日志信息
      com.yu.boot.mapper: debug

你可能感兴趣的:(spring,boot,java,spring,数据库,后端)