SpringBoot学习笔记

SpringBoot

概述

全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程

起步依赖

利用依赖传递自动引入其所依赖的其他库,包括properties和dependencies

image-20230821162624440

开发流程

idea中创建

  1. 模板选Spring Initializr,java选8,type选mavenimage-20230821160020293
  2. 选择技术集(相当于spring中的在pom中添加坐标):勾选spring web,选用的springboot版本是2.7.14,如果使用3.1.2会报错版本不兼容image-20230820092843499
  3. 开发controller,下面四个可删image-20230821155810731

maven中的pom.xml在spring initilizr中变成了build.gradle

在官网中创建

  1. 进入spring官网,点击project的springboot
  2. 拉到下面点击quickstart
  3. 工程选项如下:image-20230821153111096
  4. 选择技术集image-20230821153209207
  5. 最后generator

项目快速启动

便于前后端分离

  1. 在lifecycle中执行package命令
  2. 在target中右键选择打包好的jar包在文件夹中打开
  3. 在文件夹目录进入cmd,键入java -jar [文件名]即可运行

jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
		    <artifactId>springbootmavenplugin</artifactId>
		</plugin>
	</plugins>
</build>

变更起步依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- 在web起步依赖中排除Tomcat起步依赖 -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- 添加Jetty起步依赖,版本由SpringBoot的starter控制 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
</dependencies>

配置文件

配置格式

  • 修改服务器端口

    • 在resorces中的application.properties中修改image-20230823184427853
    • aplication.yml或者aplication.ymal(.yml 后缀的文件是 YAML 格式的文件,用于存储配置信息)image-20230823184524906

    主要用.yml的,生效优先级:.properties>.yml>.yaml

yml格式

一种数据序列化格式image-20230823185438835

以数据为核心,重数据轻格式

语法规则
  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格( 不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • #:表示注释
数据读取方式
  • 直接读取:使用@value读取image-20230824131239830
  • 封装全部数据到Environment,并使用@Autowire自动装配,用environment.getProperty()方法读取image-20230824131453430
  • (常用)使用spring进行依赖注入和属性绑定image-20230824131906390

多环境开发配置

使用yml
  • 生产环境

    URL: jdbc:mysql://127.0.0.1:4092/ccb__sVms
    User: root
    Password: root
    
  • 开发环境

    URL: jdbc:mysql://21.49.27.66:4092/ccb_sVms
    User: ccb_admin_test
    Password: noBUGnoBugnoBUG
    
  • 测试环境

    URL: jdbc:mysql://21.49.35.241:3306/ccb
    User: ccb_admin
    Password: 8Fm#_!@aSdm93]4k
    

设置启用的环境

spring:
	profiles:
		active: dev
使用properties
  1. 在resources目录下,创建以下配置文件:

    • application-dev.properties:开发环境配置
    • application-prod.properties:生产环境配置
  2. application.propertiesapplication.yml中设置spring.profiles.active属性来指定要激活的配置文件。

    例如spring.profiles.active=dev

兼容问题
  1. maven的pom.xml中设置多环境属性:

    <profiles>
        <profile>
            <id>dev_env</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>pro_env</id>
            <properties>
                <profile.active>pro</profile.active>
            </properties>
        </profile>
        <profile>
            <id>test_env</id>
            <properties>
                <profile.active>test</profile.active>
            </properties>
        </profile>
    </profiles>
    
  2. Spring Boot中引用Maven属性

    spring:
      profiles:
        active: ${profile.active}
    
    ---
    spring:
      profiles: pro
    server:
      port: 80
    
    ---
    spring:
      profiles: dev
    server:
      port: 81
    
    ---
    spring:
      profiles: test
    server:
      port: 82
    
    
  3. 执行maven打包指令,解析${}占位符

    配置占位符解析插件:将项目中的资源文件复制到构建输出目录(target目录),根据配置中的设置进行处理

    <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <useDefaultDelimiters>true</useDefaultDelimiters>
                </configuration>
    </plugin>
    

配置文件分类

多级配置文件

4级配置文件
  • 1级: file : config/application.yml [最高]
  • 2级: file : application.yml
  • 3级: classpath : config/application.yml
  • 4级: classpath : application.yml [最低]
作用
  • 1级与2级:用于系统打包后设置通用属性
  • 3级与4级:用于系统开发阶段设置通用属性

  • 文件路径file:image-20230904103512520
  • 类路径classpath:
    image-20230904103409391

整合

junit整合

image-20230904111133464

image-20230904111727846

测试类注解@SpringBootTest

  • SpringbootTestApplication(被@SpringBootTest 注解标注的类)会自动加载同层包下的带有@SpringBootConfiguration的文件的配置信息
  • 若不同层,则可以在注解中指定SpringBoot启动类@SpringBootTest(classes = Springboot07TestApplication.class)

ssm整合

ssm:Spring、SpringMVC和MyBatis,主要是整合mybatis

image-20230904113300695

  1. 起步依赖:image-20230904113522576

  2. 完善程序image-20230904114823182

  3. 写配置文件application.yml

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/ssm_db
        username: root
        password: root
    
  4. 给dao类加上注解@Mapperimage-20230904115124737

2.4.2的springboot版本配合8以上的mysql驱动,要在url连接串中配置时区image-20230904120043629

案例

  1. 起步依赖,加上spring web,MyBatis Framework和MySQL Driver
  2. 加入项目主体层次(dao,domain等)和测试类
  3. 在pom.xml中加入必要的依赖坐标
  4. 删掉config文件夹,在mapper类(dao层)文件中加上@mapper
  5. 配置数据源相关信息
  6. 给测试类加上@SpringBootTest注解
  7. 页面文件放在resources中的static(静态资源)中
  8. 写index.htmlimage-20230905163301952
  9. 启动:如果启动后idea没有services窗口,点击下图选择spring bootimage-20230905183125106
    目主体层次(dao,domain等)和测试类
  10. 在pom.xml中加入必要的依赖坐标
  11. 删掉config文件夹,在mapper类(dao层)文件中加上@mapper
  12. 配置数据源相关信息
  13. 给测试类加上@SpringBootTest注解
  14. 页面文件放在resources中的static(静态资源)中
  15. 写index.html[外链图片转存中…(img-vvP89JaI-1695122860465)]
  16. 启动:如果启动后idea没有services窗口,点击下图选择spring boot[外链图片转存中…(img-6RpOC2nU-1695122860465)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值