SpringBoot核心原理与实践

第一章、SpringBoot简介

1、入门案例

2、官网创建压缩包程序

注意使用的版本pom文件中java --> 1.8、 springboot --> 2.5.0

3、SpringBoot快速启动

运行程序--找引导类

换技术、加技术--加starter

第二章、基础配置

1、配置文件格式

《1、端口号配置》

《2、将目录文件添加到配置文件识别中》

配置文件加载顺序:application.properties > application.yml > application.yaml

2、yaml

《1、语法格式》

语法规则:------------一般根据他的语法提示就好了-----------

缩进空格多少表示层级关系;数据前面要有空格

复制代码
logging:
  level:
    root: warn

数组数据

《2、数据读取三方式》

1、直接读取----直接定义Value及变量

java 复制代码
    @Value("${server.port}")
    private int port;

    @Value("${enterprise.subject[1]}")
    private String subject__01;

2、封装对象读取----定义对象获取数据

将所有数据都加载到对象中,使用属性来获取数据

java 复制代码
 @Autowired
    private Environment environment; //使用独立的对象。将所有数据加载进去,直接使用对象来读取具体的数据
    
    @GetMapping("{id}")
    public String getId(@PathVariable Integer id) {
        System.out.println("id---->" + id);

        System.out.println(environment.getProperty("lession"));
        System.out.println(environment.getProperty("server.port"));
        System.out.println(environment.getProperty("enterprise.subject[2]"));
        return "{'module':'kaonijiwa'}";
    }

3、封装实体类读取----定义实体类获取数据 --将数据转换为数据对象

针对数据定义实体类

java 复制代码
@Component//加载为bean让spring识别
@ConfigurationProperties(prefix = "enterprise") //从配置文件中获取属性 使之与本实体类属性对应
public class Enterprise {
    private String name;
    private Integer age;
    private String tel;
    private String[] subject;

//接下来还要setter & getter

直接自动装配 获取实体类对象

java 复制代码
 @Autowired
    private Enterprise enterprise;

对象打印即可获取数据

3、多环境启动

注意:

1、package之前先从clean!

2、设置中encoding全部设置为utf-8

《1、yaml配置》

bash 复制代码
#三个横线 --- 代表一个文件
#设置启用的环境
spring:
  profiles:
    active: test
---

#开发
spring:
  profiles: dev
server:
  port: 90

---
#生产
spring:
  profiles: pro
server:
  port: 91

---

#测试
spring:
  profiles: test
server:
  port: 92

文件配置(麻烦--了解)

《2、多环境命令行启动参数设置》

按照指定环境启动 开发--dev 、 生产--pro 、 测试--test

java 复制代码
格式:
java - jar jar包名 --spring.profiles.active=启动参数
举例:
java -jar /Users/wangjia/Desktop/CS/Spring/SpringBoot/target/springboot_01-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev 

指定端口号: 跟在后面写就行了

java 复制代码
--server.port=xxx

命令行优先级高于配置文件。

所以可以使用命令行设置参数临时覆盖配置参数。

《3、多环境开发兼容问题》

maven、SpringBoot均要设置多环境。以maven为主,SpringBoot配置为辅。

3、clean -> package

4、配置文件分类

第三章、整合第三方技术

1、SpringBoot整合JUnit

对于设置运行器、加载环境,每一次都是一样的,只有环境名称不一样,所以直接使用

@SpringBootTest代替二者。

java 复制代码
@SpringBootTest //= 运行器@RunWith() + 加载启动类
//此处没有再设置启动类 是因为 测试类在启动类SpringBootApplication.class的包或者子包内
class Springboot01ApplicationTests {
    @Autowired
    private BookService bookService;//自动装配测试类对象
    @Test
    public void save(){
        bookService.save();
    }
}
//其他的都不需要设置了

2、SpringBoot整合Mybatis

前置知识:

----在创建新模块或项目要勾选SQL、Mybatis

《1、写实体类》

domain.Book

java 复制代码
public class Book {
    private Integer id;
    private String name;
    private String type;

    public String toString() {}
    getter & setter

}

《2、写数据层注解开发》

没有实体对象,在采用自动代理时要使用@Mapper标示--定义数据层接口

dao.XXXDao

java 复制代码
@Mapper //只有一个接口,在测试时没有对象。采用了自动代理,要标注一下!
 public interface BookDao {
    @Select("select * from tbl_book where id = #{id}")
    public Book getById(Integer id);
}

《3、写数据库登录信息配置文件》

在文件application.yml中写配置

java 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db
    username: root
    password: wbj731290
    type: com.alibaba.druid.pool.DruidDataSource
#指定druid数据源 同时记得pom要添加坐标依赖

3、SpringBoot整合SSM

基本点:

--config文件夹下所有配置类都不需要了

--Dao层自动代理,要添加@Mapper

--数据库登录信息要写在yml文件中

--由于是整合了前后端 web 要选、Mybatis要选、mysql要选

相关推荐
wadesir7 分钟前
深入理解Rust静态生命周期(从零开始掌握‘static的奥秘)
开发语言·后端·rust
+VX:Fegn089511 分钟前
计算机毕业设计|基于springboot + vue零食商城管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
哈哈哈笑什么19 分钟前
蜜雪冰城1分钱奶茶秒杀活动下,使用分片锁替代分布式锁去做秒杀系统
redis·分布式·后端
Query*27 分钟前
杭州2024.08 Java开发岗面试题分类整理【附面试技巧】
java·开发语言·面试
WZTTMoon35 分钟前
Spring Boot 4.0 迁移核心注意点总结
java·spring boot·后端
寻kiki35 分钟前
scala 函数类?
后端
疯狂的程序猴1 小时前
iOS App 混淆的真实世界指南,从构建到成品 IPA 的安全链路重塑
后端
旷野说1 小时前
为什么 MyBatis 原生二级缓存“难以修复”?
java·java-ee·mybatis
8***23551 小时前
【wiki知识库】07.用户管理后端SpringBoot部分
java
bcbnb1 小时前
iOS 性能测试的工程化方法,构建从底层诊断到真机监控的多工具测试体系
后端