SpringBoot程序解析

1.pom.xml文件解析

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
</parent>

1.1)Spring Boot的父级依赖 Spring-Boot-starter-parent 配置之后当前的项目就是SpringBoot项目

1.2)Spring-Boot-starter-parent 是一个特殊的starter依赖,它用来提供相关的Maven,默认依赖,

         使用它之后,常用的jar包依赖都可以省去 version 配置;

         可通过查看父类依赖的pom文件,查看默认依赖的jar包;

         如果不想使用某个默认的依赖版本,可以通过pom.xml 文件的属性配置覆盖某个依赖项,

         例如:覆盖Spring版本

<properties>
	<spring.version>5.0.0.RELEASE</spring.version>
</properties>

2.application.java 启动类文件解析

//该注解是SpringBoot项目的核心注解,主要作用是开启Spring自动配置;
@SpringBootApplication
public class Springboot77Application {

   //main方法是一个标准的java 程序的main方法,主要作用是作为项目启动运行的入口;
    public static void main(String[] args) {
        //启动了springboot 程序,启动Spring 容器,启动内嵌的tomcat;
        SpringApplication.run(Springboot77Application.class, args);
    }

}

2.1 )@SpringBootApplication注解:该注解是SpringBoot项目的核心注解,主要作用是开启Spring自动配置;

2.2)main方法是一个标准的java 程序main方法,主要作用是作为项目启动运行的入口;

3.核心配置文件

3.1)SpringBoot的核心配置文件用于配置SpringBoot程序,有两种格式的配置文件;(properties,yml)

3.2)properties文件:键值对的properties属性文件配置方式

3.3)yml文件,后缀也可以使用yaml后缀

3.4)yaml配置文件,主要采用一定的空格,换行等格式排版进行配置,值与前面的冒号配置项必须要有一个空格;

3.5)yaml是一种直观的能够被计算机识别的数据序列化格式,容易被人阅读,yaml类似于xml,但是语法比xml简洁

3.6)properties配置文件示例

#tomcat 端口
server.port=8080
#项目上下文
server.servlet.context-path=/lib

3.7)yml配置文件示例

server:
  port:  9090
  context-path: /lib

3.8)SpringBoot自定义配置文件读取

我们在SpringBoot的核心配置文件中自定义配置,有两种方法可以去读取配置文件中的属性值

properties 文件中的自定义配置

#自定义配置数据
boot.name=张三
boot.age=22
boot.password=123456
boot.iphone=13615717611

3.9)通过自定义的配置,映射到类中

/**
 * @Data  lombok的插件,编译后会自动给我们所有属性添加get和set方法,toString,hashCode,equals方法;
 * @Component  把普通的pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>
 * @ConfigurationProperties  为每个要捕获的外部属性提供一个带有字段的类,
 */
@Data
@Component
@ConfigurationProperties(prefix = "boot")
public class ConfigInfo {

    private String name;

    private String age;

}
@Controller
public class TestController {

    @Autowired
    private ConfigInfo configInfo;

    @RequestMapping("/test/config2")
    public @ResponseBody String configInfo2()
    {
        return configInfo.toString();
    }

}

本地启动,访问接口:localhost:8080/lib/test/config2

spring boot pom文件指定仓库 springboot中pom文件详解_spring

3.10)使用@Value注解

@Controller
public class TestController {

    @Value("${boot.password}")
    private String password;

    @Value("${boot.iphone}")
    private String iphone;

    @RequestMapping("/test/config1")
    public @ResponseBody String configInfo1()
    {
        return "iPhone === " + iphone +"password === "+ password;
    }

}

本地启动,访问接口:localhost:8080/lib/test/config1

spring boot pom文件指定仓库 springboot中pom文件详解_自定义_02