SpringBoot 基础
pom.xml
<!-- Spring Boot 依赖版本控制 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--
spring-boot-start-web:
spring-boot-start: spring-boot场景启动器;导入web模块所需的依赖
-->
主程序类,入口类
-
@SpringBootApplication
标注入口类,SpringBoot从这里的main
方法启动;@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication { ...} @AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {-
@SpringBootConfiguration
:Spring Boot的配置类-
@Configuration
:标注在配置类上; 配置类 ---- 配置文件
-
-
@EnableAutoConfiguration
:开启自动配置-
@AutoConfigurationPackage
:自动配置包 -
@Import({xxxx.class})
:底层注解,给容器自动导入一个组件
-
-
resource文件夹
- static: 静态资源
- templates: 模板页面(Spring Boot默认使用嵌入式的Tomcat,默认不支持JSP;可以使用模板引擎)
- application.properties: Spring Boot配置文件
-
@PropertySource(value = {"classpath:config.properties"})
:指定配置文件 - SpringBoot默认使用的全局配置文件:
- application.properties
- application.yml
-
配置文件
-
YAML 语法
-
k:(空格)v
: 一对键值对,属性、值大小敏感 - 以空格缩进表示层级关系
# 字面量:普通的值
# 双引号:不会转义特殊字符;单引号:会转义特殊字符
# 对象、Map:在下一行写对象的属性和值的关系,注意缩进
# 数组:用`-`来表示数组中的一个元素
k: v
friend1:
name: zhangsan
age: 20
friend2: {name: lisi, age: 18} # 行类写法
pets1:
- cat
- dog
pets2: [cat, dog]
-
-
导入配置文件处理器
<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency> -
配置信息封装成实体类
-
@Component
:组件类,自动加载到容器 -
@ConfiguartionProperties(prefix = "xxx")
:将类中的属性与配置文件进行绑定;prefix="xxx"
:配置文件下的哪个对象进行映射 -
@Value
:指定属性注入,不支持松散语法绑定
-