https://www.bilibili.com/video/BV13p4y187Pn?p=11

SpringBoot

  1. 手动创建maven 空项目,配置pom.xml
  1. 利用IDEA创建,一路默认就可以 ,很好用
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <!-- 定义了各种版本 保证不会版本冲突-->
  6. <parent>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-parent</artifactId>
  9. <version>2.5.3</version>
  10. <relativePath/> <!-- lookup parent from repository -->
  11. </parent>
  12. <groupId>com.example</groupId>
  13. <artifactId>SpringBoot-hello</artifactId>
  14. <version>0.0.1-SNAPSHOT</version>
  15. <name>SpringBoot-hello</name>
  16. <description>SpringBoot-hello</description>
  17. <properties>
  18. <java.version>1.8</java.version>
  19. </properties>
  20. <dependencies>
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-web</artifactId>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-test</artifactId>
  28. <scope>test</scope>
  29. </dependency>
  30. </dependencies>
  31. <build>
  32. <plugins>
  33. <plugin>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-maven-plugin</artifactId>
  36. </plugin>
  37. </plugins>
  38. </build>
  39. </project>

Hello Spring

主应用 启动类

  1. package com.angyi.springboot;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. public class Application {
  6. public static void main(String[] args) {
  7. SpringApplication.run(Application.class, args);
  8. }
  9. }

hello spring

  1. package com.angyi.springboot.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.ResponseBody;
  5. @Controller //@ResController 方法不用ResponseBody
  6. public class Hello {
  7. @ResponseBody
  8. @RequestMapping("hello")
  9. public String test(){
  10. return "Hello Spring";
  11. }
  12. }

banner图标

可以在resources文件夹下创建banner.txt.自定义,也可以关闭

  1. package com.angyi.springboot;
  2. import org.springframework.boot.Banner;
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. @SpringBootApplication
  6. public class Application {
  7. public static void main(String[] args) {
  8. SpringApplication springApplication = new SpringApplication(Application.class);
  9. springApplication.setBannerMode(Banner.Mode.OFF);
  10. springApplication.run();
  11. }

配置文件

  1. application.properties
  • SpringBoot 会默认读取全局配置文件
  • src/main/resources 资源目录下
  • 键值对
  1. # 端口
  2. server.port=8080;
  3. # 设置项目的访问路径
  4. server.servlet.context-path=/sp
  1. application.yml
    yaml格式
  1. server:
  2. port:8989
  3. servlet:
  4. context-path: /sp

语法
1、大小写敏感
2、使用缩进表示层级关系 数字前面需要有一个空格
3、禁止使用tab缩进,只能使用空格键
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级
5、使用#表示注释
6、字符串可以不用引号标注

优先级 properties>yml>yaml

获取配置文件属性值

  1. @Value
  2. Environment
  3. @ConfigurationProperties(prefix = "person")
  1. package com.example.springboothello.Controller;
  2. import com.example.springboothello.Person;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. public class Hello {
  8. @Autowired
  9. private Person person;
  10. @RequestMapping("hello")
  11. public String hello(){
  12. System.out.println(person.getAge());
  13. return person.getName();
  14. }
  15. }
  1. package com.example.springboothello;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4. import org.springframework.stereotype.Component;
  5. @Component
  6. @ConfigurationProperties(prefix = "person")
  7. public class Person {
  8. private String name;
  9. private int age;
  10. public String getName() {
  11. return name;
  12. }
  13. public int getAge() {
  14. return age;
  15. }
  16. public void setName(String name) {
  17. this.name = name;
  18. }
  19. public void setAge(int age) {
  20. this.age = age;
  21. }
  22. }

profile配置

application-{profile}.yml
image-20210810145109953创建不同环境所使用的配置文件,然后在主application.yml中的

  1. spring:
  2. application:
  3. name: dmp
  4. profiles:
  5. active: test

active 可指定不同的配置文件,激活不同的环境。
可以在一个yml文件中定义不同的环境 用三个—-分割,spring.profile 起名字

日志

如果选择web创建环境,默认是logback日志依赖。
基本使用:

  1. mport org.slf4j.Logger;
  2. import org.slf4j.LoggerFactory;
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. @SpringBootApplication
  6. public class LogApplication {
  7. public static void main(String[] args) {
  8. Logger logger =LoggerFactory.getLogger(LogApplication.class);
  9. SpringApplication.run(LogApplication.class, args);
  10. logger.debug("This is a debug message");//注意 spring 默认日志输出级别为 info 所以默认情况下 这句不会打印到控制台
  11. logger.info("This is an info message");
  12. logger.warn("This is a warn message");
  13. logger.error("This is an error message");
  14. }
  15. }

基本配置:

  1. logging:
  2. #level 日志等级 指定命名空间的日志输出
  3. level:
  4. com.fishpro.log: debug
  5. #file 指定输出文件的存储路径
  6. file: logs/app.log
  7. #pattern 指定输出场景的日志输出格式
  8. pattern:
  9. console: "%d %-5level %logger : %msg%n"
  10. file: "%d %-5level [%thread] %logger : %msg%n"

详细可参考:
https://www.cnblogs.com/fishpro/p/11167469.html