赞
踩
目录
Spring Boot是一个广泛用来构建Java微服务的框架,它基于Spring依赖注入框架来进行工作.Spring Boot允许开发人员使用更少的配置来构建微服务,同时框架本身能够尽可能的减少开发人员的冲突.自动化配置,一般情况下都有默认配置提供一组流行的starter依赖,方便开发人员使用简化应用打包自动化配置,一般情况下都有默认配置
在Spring应用中,用户将会使用到不同的技术组件,包括:JDBC数据源(DBCP,Druid)、消息队列(RabbitMQ)、文件系统以及应用缓存(Redis)等.开发人员需要在需要这些功能时,停下来,仔细分析一下自己究竟需要什么?需要的内容属于哪个依赖(“哦,我需要MyBatis依赖”),然后花费大量的时间在依赖组织和排除上.SpringBoot提供了功能(一批jar包依赖)的依赖(starter),它让开发人员声明需要的功能,而不用去关系究竟如何处理依赖关系.
SpringBoot是一组jar包和符合其约定的配置的构建块,因此它不会运行在现有的应用服务器中,而使用SpringBoot的大多数开发人员更喜欢的是直接运行的这种自包含的jar包。
使用的IDEA版本是2021.3月份的版本,其他版本也是一样的新建项目
将服务器url改成start.aliyun.com


以下是运行项目入口

pom.xml:
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.ZJ</groupId>
- <artifactId>springBoot</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>springBoot_01</name>
- <description>springBoot_01</description>
-
- <properties>
- <java.version>1.8</java.version>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <spring-boot.version>2.4.1</spring-boot.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configuration-processor</artifactId>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <scope>runtime</scope>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-dependencies</artifactId>
- <version>${spring-boot.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <version>2.4.1</version>
- <configuration>
- <mainClass>com.zj.springboot.SpringBoot01Application</mainClass>
- </configuration>
- <executions>
- <execution>
- <id>repackage</id>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- </project>

自动配置是根据前缀名来的
@ConfigurationProperties(
prefix = "server",
ignoreUnknownFields = true
)
student,加上@Component
@Data 实现get和set方法
@NoArgsConstructor 无参构造
@AllArgsConstructor 有参构造
@ConfigurationProperties(prefix = "student") 将配置前缀设置为自己的前缀
以上五个注解
- package com.zj.springboot.pojo;
-
-
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.stereotype.Component;
-
- import java.util.*;
-
- @Component
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- @ConfigurationProperties(prefix = "student")
- public class Student {
-
-
- private String name;
- private String password;
- private String sex;
- private int age;
- private boolean speech;
- List<String> hobby=new ArrayList<>();
- Map<String,String> tedian=new HashMap<>();
- Set<String> statue=new HashSet<>();
-
- }

- #server.port=8081
-
-
- student :
- name : 小明
- password : 123
- sex : 男
- age : 12
- speech : true
- hobby :
- - 喝茶
- - 饮酒
- tedian :
- { k1 : 跑步 }
- statue :
- - 183
-
-
- spring :
- profiles:
- active: dev
- server:
- port: 8080

运行结果:
Student(name=小明, password=123, sex=男, age=12, speech=true, hobby=[喝茶, 饮酒], tedian={k1=跑步}, statue=[183])
1、支持松散绑定,复杂数据类型
2、yml注入形式:分层次进行
- #server.port=8081
-
-
- student :
- name : 小明
- password : 123
- sex : 男
- age : 12
- speech : true
- hobby :
- - 喝茶
- - 饮酒
- tedian :
- { k1 : 跑步 }
- statue :
- - 183
-
-
- spring :
- profiles:
- active: dev
- server:
- port: 8080

3、和传统.properties相对比
1、yml(支持松散绑定,复杂数据类型) properties(不支持松散绑定)
2、yml取值形式灵活,.properties,需要配合@Value("${xx}")使用
除了有application.yml还有其他两种文件
运行文件
application-test.yaml 测试文件
例如: 在application.yml文件的端口号可以在 application-dev.yaml打上,在application.yml只要配置好application-dev.yaml就行
application.yml:
- #server.port=8081
-
-
- student :
- name : 小明
- password : 123
- sex : 男
- age : 12
- speech : true
- hobby :
- - 喝茶
- - 饮酒
- tedian :
- { k1 : 跑步 }
- statue :
- - 183
-
-
- spring :
- profiles:
- active: dev
- #server:
- # port: 8080

application-dev.yaml:
server: port: 8081
先加载properties在加载yml
加载位置优先级:
1. config/application.properties(项目根目录中config目录下)
2. config/application.yml
3. application.properties(项目根目录下)
4. application.yml
5. resources/config/application.properties(项目resources目录中config目录下)
6. resources/config/application.yml
7. resources/application.properties(项目的resources目录下)
8. resources/application.yml
通过server.port了解其自动装配
今天知识就分享到这了,希望能够帮助到你!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。