javaEE | Spring Boot

目录

一.Spring Boot是什么

二.Spring Boot的优点

三.Spring Boot 项⽬创建

四.Spring Boot配置文件

4.1配置文件的两种格式

4.2配置文件的作用

4.3读取配置文件

五.yml配置文件使用

5.1 yml的优点

5.2 yml基本用法

5.3yml使用进阶

六.properties VS yml 总结


一.Spring Boot是什么

Spring 的诞生是为了简化java程序的开发,Spring Boot 的诞生是为了简化Spring程序开发的。

由于Spring要完成的业务越来越多,开发越来越大,越来越臃肿,为了解决臃肿和比较麻烦的配置才出现了Spring Boot 来进一步简化Spring程序开发。

SpringBoot 相当于Spring框架的脚手架,是为了快速开发Spring框架而诞生的。 

二.Spring Boot的优点

  • 快速集成框架:Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。
  • 内置运行容器:无需配置Tomcat等Web容器,直接运行和部署程序。
  • 快速部署项目:无需外部容器,即可启动并运行项目。
  • 可以完全抛弃繁琐的XML,使用注解和配置的方式进行开发。
  • 支持更多的监控指标,可以更好地了解项目的运行情况。

三.Spring Boot 项⽬创建

3.1使用idea创建

3.2通过Spring官方提供的Web地址进行创建: https://start.spring.io

注意:Spring Boot 约定大于配置

Spring Boot中有哪些约定呢?

  1. Maven的目录结构。默认有resources文件夹,存放资源配置文件。src-main-resources,src-main-java。默认的编译生成的类都在targe文件夹下面
  2. spring boot默认的配置文件必须是,也只能是application.命名的yml文件或者properties文件,且唯一
  3. application.yml中默认属性。数据库连接信息必须是以spring: datasource: 为前缀;多环境配置。该属性可以根据运行环境自动读取不同的配置文件;端口号、请求路径等

四.Spring Boot配置文件

4.1配置文件的两种格式

.properties

.yml

特殊说明

  1. 理论上讲 properties 可以和 yml ⼀起存在于⼀个项⽬当中,当 properties 和 yml ⼀起存在⼀个项 ⽬中时,如果配置⽂件中出现了同样的配置,⽐如 properties 和 yml 中都配置了“server.port”,那 么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级最⾼,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
  2. 虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配 置⽂件格式,这样可以更好的维护(降低故障率)。这就好像连锁店的服饰⼀样,不管是⽼款的服 装还是新款的服装,⼀定要统⼀了才好看。

4.2配置文件的作用

  • 为系统框架提供数据支持,整个项目中所需要的数据都在配置文件中配置,如:数据库的连接信息(包括用户名和密码)、项目的启动端口、第三方系统调用秘钥等信息、发现定位问题的普通日志和异常日志等。
  • 为程序员自己使用。

4.3读取配置文件

如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。

@Value 注解使⽤“${}”的格式读取,如下图所示:

五.yml配置文件使用

 yml是YMAL缩写,全称是Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔”。

5.1 yml的优点

  • 树形结构,可读性高,易于理解
  • 可以简单表达数组、散列表、标量等数据形态
  • 跨语种,不止是 Java 中可以使⽤ golang、python 都可以使⽤ yaml 作为配置⽂件。

5.2 yml基本用法

yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒号加空格的⽅式组成的,其中的空格不可省略

举例:使用yml连接数据库

spring:
 datasource:
   url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
   username: root
   password: root

5.3yml使用进阶

# 字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制
# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法
# Null,~代表null
null.value: ~
student:
 id: 1
 name: Java
 age: 18

或者:

sudent: {id: 1,name: Java,age: 18}

这时不能用@Value来读取配置中的对象,此时要使用另一个注解@ConfigurationProperties来读取

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "student")
@Component
public class StudentComponent {
    private int id;
    private String name;
    private int age;
    public int getId() {
        return id;
   }
    public void setId(int id) {
        this.id = id;
   }
    public String getName() {
        return name;
   }
    public void setName(String name) {
        this.name = name;
   }
    public int getAge() {
        return age;
   }
    public void setAge(int age) {
        this.age = age;
   }
    @Override
    public String toString() {
        return "StudentComponent{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
   }
}

5.4.properties VS yml 总结

  • properties 是以 key=value 的形式配置的键值类型的配置⽂件,⽽ yml 使⽤的是类似 json 格式的 树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英⽂ 冒号加空格的⽅式设置,并且空格不可省略。
  • properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的 解决数据冗余的问题。
  • yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份 配置⽂件作为 Java 和 Go 的共同配置⽂件。
  • yml 虽然可以和 properties 共存,但⼀个项⽬中建议使⽤统⼀的配置类型⽂件。

六.SpringBoot日志文件

6.1日志功能

  • 快速定位和排查问题
  • 记录用户的信息
  • 记录操作信息,帮助恢复数据或定位责任人
  • 记录程序的执行时间,方便后期的优化和分析

6.2自定义日志打印

SpringBoot内置了日志框架,默认情况下,输出的日志不是开发者定义和打印的,日志默认打印在控制台上,而控制台的日志是不能被保存的,所以开发者为以上功能自定义打印日志。

自定义打印日志实现步骤:

  • 先在程序中获取到日志对象。
  • 调用日志对象的打印方法,将日志打印出来。
@Controller
public class UserController {

//    1.获取日志对象
    private static Logger logger = LoggerFactory.getLogger(UserController.class);

    @RequestMapping("/hi")
    @ResponseBody//说明返回给浏览器的是一个值而不是页面
    public String sayHi(String name){
//        2.使用日志对象的日志打印方法来打印日志
        logger.info("------------------执行了sayHi,得到参数name:"+name);
        return "hi, " + name;
    }
}

6.3日志级别

作用:筛选和过滤信息

  • trace:微量,少许的意思,级别最低;
  • info:普通的打印信息;
  • debug:需要调试的时候打印的关键信息;
  • warn:警告,不影响使用,但是需要注意的问题;
  • error:错误信息,级别较高的错误日志信息。
  • fatal:致命的,因为代码异常导致程序退出执行的事件。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值