2021-07-11

本文介绍了SpringBoot的基础知识和核心特性,包括自动配置、YAML配置、数据库连接及JDBC操作。通过学习,理解了SpringBoot简化企业级应用开发的优势,并掌握了启动器、主程序配置、配置文件的使用以及如何整合JDBC进行数据库操作。
摘要由CSDN通过智能技术生成

第一次总结

实现功能:

暂无

修复bug:

1.springboot启动异常:This application has no explicit mapping for /error

原因:
spring-boot会自动加载启动类所在包下及其子包下的所有组件.
所以springboot启动类所在包的路径要在最外层,或者根层下

所学内容

1.了解SpringBoot是是什么

Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。

SpringBoot的主要优点:
  • 为所有Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求
2.SpringBoot 原理初探

启动器:说白了就是Springboot的启动器
springboot会将所有的功能场景,都编程一个个的启动器
我们要使用什么功能,都只需要找到对应的启动器就可以了 starter

主程序:

@SpringBootApplication:标注这是一个springboot的应用

@SpringBootConfiguration:spingboot的配置

@EnableAutoConfiguration:自动配置


    @AutoConfigurationPackage:自动配置包
          @Import({Registrar.class}):导入选择器
    @Import({AutoConfigurationImportSelector.class}):导入配置,导入选择


3.SpringBoot配置
  • @SpringBootApplication 开启了Spring的组件扫描和Springboot的自动配一起
  • @Configuration:表名该类使用基于Java的配置,将此类作为配置类。
  • @ComponentScan:启用注解扫描
  • @EnableAutoConfiguration:开启springboot的自动配置功能

pom.xml文件中默认有两个模块:
spring-boot-starter:核心模块,包括自动配置支持、日志和YAML
spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito

yaml语法:

以数据作为中心,而不是以标记语言为重点!

语法结构 :key:空格 value
# k=v
# 对空格的要求比较高
# 普通的key-value
  name:qinjiang

# 对象
Student:
  name: qinjiang
  age: 3

# 行内写法
student:{name:qingjiang,age:3}

# 数组
pets:
  - cat
  - dog
  - pig
  
# 行内写法
pets: [cat,dog,pig]
注入配置文件:
1.@value

@Component//注册bean

public class Dog {
   
    @Value("小黑")
   
    private String name;
    @Value("4")
    private int age;
}
yaml配置:

application.yaml内:

dog:
  name: 旺财
  age: 3
@Component//注册组件

@ConfigurationProperties(prefix = "dog")

public class Dog {
    
    private String name;
    
    private int age;
}
加载指定的配置文件
name=大何
age=8
@Component
@PropertySource(value = "classpath:application.properties")

public class Dog {
    //SPEL表达式取出配置文件的值
    @Value("${name}")
    @Email
    private String name;
    @Value("${age}")
    private int age;
}
profile

我们在开发SpringBoot应用时,通常同一套程序会被安装到不同环境,比如:开发、测试、生产等。其中数据库地址、服务器端口等等配置都不同,如果每次打包时,都要修改配置文件,那么非常麻烦。profile就是进行动态配置切换的。

profile配置方式

  • 多profile文件方式
    在这里插入图片描述
spring.profiles.active=dev
  • yml多文档方式
---
server:
  port: 8081
spring:
  profiles: dev
---
server:
  port: 8082
spring:
  profiles: pro
---
  server:
    port: 8083
  spring:
    profiles: test
---
spring:
  profiles:
    active: test
4.整合JDBC
1.导入启动器
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
2.编写yaml配置文件连接数据库
编写yaml配置文件连接数据库;

spring:
  datasource:
    username: root
    password: 1234567890lina
    #serverTimezone=UTC解决时区的报错
    url: jdbc:mysql://127.0.0.1:3306/day17?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
3.数据库操作
 @Autowired
    JdbcTemplate jdbcTemplate;

    //查询数据库的所有信息
    //没有实体类,怎么获取?Map

    @GetMapping("bookList")
    public  List<Map<String, Object>> findAllBooks() throws SQLException {

        String sql="select * from book";
        List<Map<String, Object>> books =  jdbcTemplate.queryForList(sql);

        return books;
    }


    @GetMapping("updateBook")
    public void updateBook() throws SQLException {

        String sql="update book set name=? where id=?";

        Object[] objects=new Object[2];
        objects[0]="酸梅";
        objects[1]=1;

        jdbcTemplate.update(sql,objects);
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值