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要选

相关推荐
一只小青团29 分钟前
Python之面向对象和类
java·开发语言
好奇的菜鸟30 分钟前
Spring Boot 事务失效问题:同一个 Service 类中方法调用导致事务失效的原因及解决方案
数据库·spring boot·sql
qq_529835351 小时前
ThreadLocal内存泄漏 强引用vs弱引用
java·开发语言·jvm
落笔画忧愁e1 小时前
扣子Coze飞书多维表插件添加数据记录
java·服务器·飞书
来自宇宙的曹先生1 小时前
视频网站弹幕系统简易实现
spring boot·音视频
姑苏洛言3 小时前
编写产品需求文档:黄历日历小程序
前端·javascript·后端
秋千码途3 小时前
小架构step系列08:logback.xml的配置
xml·java·logback
飞翔的佩奇3 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
姑苏洛言4 小时前
搭建一款结合传统黄历功能的日历小程序
前端·javascript·后端
你的人类朋友4 小时前
🍃认识一下boomi
后端