• 黑马SpringBoot 基础篇12-28


    1.复制模块:

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

     基础篇:属性配置方式

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

    格式为key-value

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

    基础篇:基础配置

    关闭运行日志图表

    spring.main.banner-mode=off

    设置运行日志的显示级别

    logging.level.root=debug

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

    1. logging.level.com.itheima=info
    2. 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格式)

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

    1. server:
    2. 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可以读取单个数据,属性名引用方式:${一级属性名.二级属性名……}

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

     

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

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

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

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

     封装到Environment对象中:

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

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

    总结

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

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

    整合第三方技术:

    整合Junit:

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

    1. // 告诉spring 测试对象是谁
    2. @SpringBootTest(classes=BootJunitApplication.class)
    3. @SpringBootTest
    4. @ContextConfiguration(classes=BootJunitApplication.class)
    1. 测试类如果存在于引导类所在包或子包中无需指定引导类

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

    整合Mybatis

    所需的sql语句

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

    1. @Mapper
    2. public interface BookDao {
    3. @Select("select * from tbl_book where id=#{id}")
    4. public Book getById(Integer id);
    5. }

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

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

    1. @SpringBootTest
    2. class BootMybatisApplicationTests {
    3. @Autowired
    4. private BookDao bookDao;
    5. @Test
    6. void contextLoads() {
    7. System.out.println(bookDao.getById(1));
    8. }
    9. }

    整合Mybatis-Plus

    1.导入对应的starter

    1. com.baomidou
    2. mybatis-plus-boot-starter
    3. 3.4.3

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

    1. #2.配置相关信息
    2. spring:
    3. datasource:
    4. driver-class-name: com.mysql.cj.jdbc.Driver
    5. url: jdbc:mysql://localhost:3306/ssm_db
    6. username: root
    7. password: root
    1. @Mapper
    2. public interface BookDao extends BaseMapper {
    3. }

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

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

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

    整合Druid:

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

    1. com.alibaba
    2. druid
    3. 1.2.14

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

     

    总结

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

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

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

      • 导入对应的starter

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

     

  • 相关阅读:
    单例模式的七种写法
    SSM+网上书城系统 毕业设计-附源码180919
    计算机毕业设计之java+springboot基于vue的地方美食分享网站
    python生成PDF报告
    MySQL入门第三天——数据表的约束
    设计模式-创建型-抽象工厂模式-Abstract Factory
    C++ Reference: Standard C++ Library reference: C Library: cmath: hypot
    Proteus单片机仿真实验电路图绘制
    GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图
    19、Flink 的Table API 和 SQL 中的自定义函数及示例(2)
  • 原文地址:https://blog.csdn.net/qq_41325698/article/details/127578599