黑马SpringBoot 基础篇12-28

2023-11-15

1.复制模块:

简单来说,别人的工程,你想用,需要修改一些东西,才能用,按照以下步骤即可。

 基础篇:属性配置方式

springboot默认配置文件是application.properties,在里面直接修改就行。

格式为key-value

#修改服务器端口
server.port=80

基础篇:基础配置

关闭运行日志图表

spring.main.banner-mode=off

设置运行日志的显示级别

logging.level.root=debug

 还可以针对不同的包设置不同的日志级别:

logging.level.com.itheima=info
logging.level.com.timid=info

application.properties中可以配置很多属性,具体可见官方文档,

Common Application Properties

注意:SpringBoot中导入对应starter后,提供对应配置属性

基础篇:3种配置文件类型

1.application.properties(默认方式)

2.application.yml  (主流方式/推荐方式)

3.application.yaml

  • application.properties(properties格式)

server.port=80
  • application.yml(yml格式)

server:
  port: 81
  • application.yaml(yaml格式)

server:
  port: 82

配置文件加载优先级:yaml>yml>properties  (验证方式:新建一个yaml文件和yml文件,三个文件同时配置server的port端口,分别设置为80、81、82,看哪个生效)

黑马视频中所讲的正好和我验证的相反,不知道为什么?

自动提示功能消失解决方案

在yaml中写配置,可能遇见没有自动提示,可用下面方法解决。

指定SpringBoot配置文件

  • Setting → Project Structure → Facets

  • 选中对应项目/工程

  • Customize Spring Boot

  • 选择配置文件

 yaml 数据格式:

  1. 大小写敏感

  2. 属性层级关系使用多行描述,每行结尾使用冒号结束

  3. 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)

  4. 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)

  5. #号 表示注释

常见的数据书写格式

boolean: TRUE                          #TRUE,true,True,FALSE,false,False均可
float: 3.14                            #6.8523015e+5  #支持科学计数法
int: 123                               #0b1010_0111_0100_1010_1110    #支持二进制、八进制、十六进制
null: ~                                #使用~表示null
string: HelloWorld                  #字符串可以直接书写
string2: "Hello World"              #可以使用双引号包裹特殊字符
date: 2018-02-17                    #日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00  #时间和日期之间使用T连接,最后使用+代表时区

数组表示方法:在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔  

subject:
    - Java
    - 前端
    - 大数据
enterprise:
    name: itcast
    age: 16
    subject:
        - Java
        - 前端
        - 大数据
likes: [王者荣耀,刺激战场]            #数组书写缩略格式
users:                             #对象数组格式一
  - name: Tom
       age: 4
  - name: Jerry
    age: 5
users:                             #对象数组格式二
  -  
    name: Tom
    age: 4
  -   
    name: Jerry
    age: 5                
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]    #对象数组缩略格式

yaml中保存的单个数据,可以使用Spring中的注解直接读取,使用@Value可以读取单个数据,属性名引用方式:${一级属性名.二级属性名……}

    @Value("${server.port}")
    private String port;

 

记得使用@Value注解时,要将该注入写在某一个指定的Spring管控的bean的属性名上方。现在就可以读取到对应的单一数据行了

自定义对象封装指定数据:

  使用@ConfigurationProperties注解绑定配置信息到封装类中。

封装类需要定义为Spring管理的bean,否则无法进行属性注入

 封装到Environment对象中:

SpringBoot提供了一个对象,能够把所有的数据都封装到这一个对象中,这个对象叫做Environment,使用自动装配注解可以将所有的yaml数据封装到这个对象中

 数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法时getProperties(String),参数填写属性名即可

总结

  1. 使用Environment对象封装全部配置信息

  2. 使用@Autowired自动装配数据到Environment对象中

整合第三方技术:

整合Junit:

 如果不在启动类所在的包及其子包,那么在springTest里指定类也可以,下面两种写法等价:

// 告诉spring 测试对象是谁
@SpringBootTest(classes=BootJunitApplication.class)

@SpringBootTest
@ContextConfiguration(classes=BootJunitApplication.class)
  1. 测试类如果存在于引导类所在包或子包中无需指定引导类

  2. 测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类

整合Mybatis

所需的sql语句

DROP TABLE IF EXISTS `tbl_book`;
CREATE TABLE `tbl_book`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) , 
  `type` varchar(100)  ,
  `description` varchar(100) ,
  PRIMARY KEY (`id`) USING BTREE
);

INSERT INTO `tbl_book` VALUES (1, '三体', '科幻', '大刘的巅峰之作,将中国科幻推向世界舞台。总共分为三部曲:《地球往事》、《黑暗森林》、《死神永生》。');
INSERT INTO `tbl_book` VALUES (2, '格林童话', '童话', '睡前故事。');
INSERT INTO `tbl_book` VALUES (3, 'Spring 5设计模式', '计算机理论', '深入Spring源码剖析Spring源码中蕴含的10大设计模式');
INSERT INTO `tbl_book` VALUES (4, 'Spring MVC+ MyBatis开发从入门到项目实战', '计算机理论', '全方位解析面向Web应用的轻量级框架,带你成为Spring MVC开发高手');
INSERT INTO `tbl_book` VALUES (5, '轻量级Java Web企业应用实战', '计算机理论', '源码级剖析Spring框架,适合已掌握Java基础的读者');
INSERT INTO `tbl_book` VALUES (6, 'Java核心技术卷|基础知识(原书第11版)', '计算机理论', 'Core Java第11版,Jolt大奖获奖作品,针对Java SE9、10、 11全面更新');
INSERT INTO `tbl_book` VALUES (7, '深入理解Java虚拟机', '计算机理论', '5个维度全面剖析JVM,面试知识点全覆盖');
INSERT INTO `tbl_book` VALUES (8, 'Java编程思想(第4版)', '计算机理论', 'Java学习必读经典殿堂级著作!赢得了全球程序员的广泛赞誉');
INSERT INTO `tbl_book` VALUES (9, '零基础学Java (全彩版)', '计算机理论', '零基础自学编程的入门]图书,由浅入深,详解Java语言的编程思想和核心技术');
INSERT INTO `tbl_book` VALUES (10, '直播就该这么做:主播高效沟通实战指南', '市场营销', '李子柒、李佳琦、薇娅成长为网红的秘密都在书中');
INSERT INTO `tbl_book` VALUES (11, '直播销讲实战一本通', '市场营销', '和秋叶一起学系列网络营销书籍');
INSERT INTO `tbl_book` VALUES (12, '直播带货:淘宝、天猫直播从新手到高手', '市场营销', '一本教你如何玩转直播的书, 10堂课轻松实现带货月入3W+');
INSERT INTO `tbl_book` VALUES (13, 'Spring实战第5版', '计算机理论', 'Spring入门经典教程,深入理解Spring原理技术内幕');
INSERT INTO `tbl_book` VALUES (14, 'Spring 5核心原理与30个类手写实战', '计算机理论', '十年沉淀之作,写Spring精华思想');


1. 创建新模块,选择springinitial,并配置相关模块信息

2.在application.yml 中写配置信息

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/boot_db?serverTimezone=UTC&useUnicode=true
    username: root
    password: root

在url后面要加上时区     ?serverTimezone=UTC&useUnicode=true

3.定义数据库接口与映射配置

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

 记得要添加@Mapper 被容器识别到

4.在测试类中注入dao配置,测试功能

@SpringBootTest
class BootMybatisApplicationTests {
    @Autowired
    private BookDao bookDao;
    @Test
    void contextLoads() {
        System.out.println(bookDao.getById(1));
    }
}

整合Mybatis-Plus

1.导入对应的starter

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3</version>
</dependency>

2.配置数据源相关信息 和映射接口

#2.配置相关信息
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db
    username: root
    password: root
@Mapper
public interface BookDao extends BaseMapper<Book> {

}

核心在于Dao接口继承了一个BaseMapper的接口,这个接口中帮助开发者预定了若干个常用的API接口,简化了通用API接口的开发工作。

 因为数据库中表明为tbl_book,而实体类名为book,需要做一个配置, 添加如下配置即可,设置所有表名的通用前缀名

mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_        #设置所有表的通用前缀名称为tbl_

整合Druid:

  1. 导入对应的技术坐标(添加对应的依赖)

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.14</version>
        </dependency>

2. 配置使用指定的数据源类型

 

总结

  1. 整合Druid需要导入Druid对应的starter

  2. 根据Druid提供的配置方式进行配置

  3. 整合第三方技术通用方式

    • 导入对应的starter

    • 根据提供的配置格式,配置非默认值对应的配置项

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

黑马SpringBoot 基础篇12-28 的相关文章

随机推荐

  • ipad如何改造成linux终端,如何实现让ipad上使用终端terminal

    实现的具体步骤如下 1 cydia安装openssh 2 installous安装issh 3 进入issh 选add configuration description 随便填 host localhost port 22 login r
  • matlab内存管理(二)

    转自 http hi baidu com bi CB AB C9 FA BB A8 blog item 5ab86c38ac2f45e715cecbab html 1 确保内存的连续性Matlab 中数组必须占用连续分配的内存段当无法为新建
  • web前端基础:HTML文字和段落标签

    标题标签 h1 h1 h6 h6 段落标签 p p align对齐属性值 值 描述 left 左对齐 right 右对齐 center 居中对齐 justify 对行进行伸展 每行可以有相等的长度 列表标签 有序列表 ol li 列表项 l
  • win10上安装python3.9.0+robotframework

    win10上安装python3 9 robotframework python3 9 0下载安装 robotframework安装 wxpython安装 ride安装 python3 9 0下载安装 下载地址 python3 9 0下载地址
  • el-dialog水平垂直居中

  • 珠玑算法的Java实现

    珠玑算法的Java实现 珠玑算法 也称作Mastermind 是一种猜测和推理游戏 通常由两个玩家参与 一方作为 代码制造者 随机生成一个颜色序列 而另一方作为 代码猜测者 试图在有限的猜测次数内猜出正确的序列 猜测者每次猜测后 制造者会给
  • 6、RC4算法

    参考 https blog csdn net huangyimo article details 82970903 RC4算法 RC4算法变量 RC4算法流程 RC4算法相关 RC4算法 RC4加密算法是Ron Rivest在1987年设计
  • SM系列算法有哪些?一文详解

    SM系列国密算法是由中国国家密码管理局于2007年颁布的一组密码算法标准 是中国自主研发的一种新一代密码技术 SM系列算法分为SM1 SM2 SM3 SM4 SM7 SM9 分别用于对称加密 公钥密码学 哈希算法和消息认证码 其中SM1 S
  • vue-element页面说明文档

    目录 技术栈 环境搭建流程 目录结构 实现页面 技术栈 vue4 0 HbuilderX 是DCloud 数字天堂 推出的一款支持HTML5的Web开发IDE 初学vue不建议用vscode 推荐使用此工具 nodejs 开发依赖 提供np
  • 记录一次spring定时任务,需要多线程执行时遇到的坑

    项目中需要使用定时任务开启多个线程处理组装报文业务 但是在spring xml中配置了
  • 内容公链Contentos首席科学家不建议刚毕业的年轻人直接从事区块链开发

    在区块链开发者队伍中 有一批来自传统的互联网开发人员 在区块链圈子里崇尚年轻和 天才 的文化氛围中 这批开发者因经历了两次重大浪潮的洗礼而更加的扎实和沉稳 戴硕就是其中一位 戴硕 内容公链Contentos首席科学家 清华毕业 中科院硕士
  • 【网络结构】——FastViT论文浅读

    论文 https arxiv org pdf 2303 14189 pdf 关键词 fastvit cnn transformer 重参数化 大卷积核 来自 苹果 文章目录 摘要 1 简介 2 网络结构 2 1 RepMixer 2 2 重
  • 利用Canal把MySQL数据同步到ES

    Canal是阿里巴巴开源的一个数据库变更数据同步工具 主要用于 MySQL 数据库的增量数据到下游的同步 例如同步到 Elasticsearch HBase Hive 等 下面是一个基本的步骤来导入 MySQL 数据库到 Elasticse
  • LLVM在Windows下使用VisualStudio2017添加编译自定义pass

    参考 uu kk LLVM pass on Windows integrating with opt 该方法仍然有效 只不过还需要一些修改 遇到的错误需要解决 错误1 CMake Error at CMakeLists txt 658 me
  • win10安装mysql的步骤_win10 安装mysql 8.0.18-winx64的步骤详解

    1 先去官网下载mysql 安装包 https dev mysql com downloads mysql 2 下载完后解压到你想要安装MSQ 的文件目录下 如 D Mysql 3 管理员命令运行 命令行 进入mysql 安装包的 bin
  • 语义分割 - Semantic Segmentation Papers

    语义分割类的论文与代码汇总 逐渐迁移到搭建的博客上 AIUAI www aiuai cn 新地址 语义分割 Semantic Segmentation Papers AIUAI Semantic Segmentation Convoluti
  • Accuracy index of object detection: F1 & IoU

    Reference https stats stackexchange com questions 273537 f1 dice score vs iou https www pyimagesearch com 2016 11 07 int
  • qemu-linux-user ELF vs XCOFF 2

    最后更新2021 12 16 qemu 4 x linux user mmap c 里target mmap如果offset不是aligned有问题 前面检测后直接退出了 后面做了pread 但走不到这个地方 修改一下 看看效果如何 如前所
  • 在 GitHub 公开源码,造成百万损失,大疆程序员被判 6 个月,罚款 20 万

    给程序员的那些事加星标 原创整理 程序员的那些事 id iProgrammer 4 月 22 日 某站源码在 GitHub 突然被开源 虽然 GitHub 站方出面封掉了首个暴露的代码库 但后续还是有很多人继续主动在 GitHub 新建代码
  • 黑马SpringBoot 基础篇12-28

    1 复制模块 简单来说 别人的工程 你想用 需要修改一些东西 才能用 按照以下步骤即可 基础篇 属性配置方式 springboot默认配置文件是application properties 在里面直接修改就行 格式为key value 修改