springboot

SpringBoot学习笔记

2020-02-08  本文已影响0人  dev_winner
<profile>    
    <id>jdk-1.8</id>    
    <activation>    
        <activeByDefault>true</activeByDefault>    
        <jdk>1.8</jdk>    
    </activation>    
    <properties>    
        <maven.compiler.source>1.8</maven.compiler.source>    
        <maven.compiler.target>1.8</maven.compiler.target>    
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
    </properties>     
</profile>
application.properties
application.yml
application.yaml

YAML语法

# 注意缩进(层级之间为2个空格)
person:
  name: 张三
  gender: 男
  age: 22
# 行内写法:
person: {name: 张三,gender: 男,age: 22}
# 注意缩进(层级之间为2个空格)
fruits: 
  - 苹果
  - 桃子
  - 香蕉
# 行内写法:
fruits: [苹果,桃子,香蕉]

功能 松散绑定(松散语法) SpEL JSR303数据校验 复杂类型封装
@ConfigurationProperties 批量注入配置文件中的属性 支持 不支持 支持 支持
@Value 一个个指定 不支持 支持 不支持 不支持
application-dev.properties #开发环境
application-prod.properties #生产环境
server:
  port: 8082
spring:
  profiles:
    active: dev # 激活dev环境配置
--- # 每个文档块使用---分割
server:
  port: 8888
spring:
  profiles: dev # 命名当前文档块的环境名
---
server:
  port: 8090
spring:
  profiles: prod
IDEA中2种参数设置方式 cmd添加配置参数
file:./config/
file:./
classpath:/config/
classpath:/
  1. 命令行参数,所有配置都可以在命令行上进行指定,例如:java -jar xxx.jar --server.port=8087 --server.context-path=/abc多个配置用空格分开; --配置项=值
  2. 来自java:comp/env的JNDI属性
  3. Java系统属性(System.getProperties())
  4. 操作系统环境变量
  5. RandomValuePropertySource配置的random.*属性值
    由jar包外向jar包内进行寻找优先加载带profile
  6. **jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
  7. **jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
    再来加载不带profile
  8. jar包外部的application.properties或application.yml(不带spring.profile)配置文件
  9. **jar包内部的application.properties或application.yml(不带spring.profile)配置文件
@Conditional扩展注解 作用(判断是否满足当前指定条件)
@ConditionalOnJava 系统的java版本符合要求
@ConditionalOnBean 容器中存在指定Bean
@ConditionalOnMissingBean 容器中不存在指定Bean
@ConditionalOnExpression 满足指定的SpEL表达式
@ConditionalOnClass 系统中有指定的类
@ConditionalOnMissingClass 系统中没有指定的类
@ConditionalOnSingleCandidate 容器中只有一个指定的Bean,或者这个Bean是首选Bean
@ConditionalOnProperty 系统中指定的属性有指定的值
@ConditionalOnResource 类路径下存在指定资源文件
@ConditionalOnWebApplication 当前是web环境
@ConditionalOnNotWebApplication 当前不是web环境
@ConditionalOnJndi JNDI存在指定项
日志门面 (日志的抽象层) 日志门面 (日志的抽象层)
JCL(Jakarta Commons Logging、SLF4j(Simple Logging Facade for Java)、jboss-logging JUL(java.util.logging)Log4j、Log4j2、Logback
  1. 将系统中其他日志框架先排除出去;
  2. 用中间包来替换原有的日志框架;
  3. 导入slf4j其他的实现。
logging.file logging.path Example Description
(none) (none) 只在控制台输出
指定文件名 (none) my.log 默认输出日志到当前项目根路径下的my.log文件
(none) 指定目录 /spring/log 输出日志到当前项目所在磁盘的根路径下的/spring/log/spring.log 文件
Logging System(使用的日志框架) Customization(自定义输出日志配置文件名)
Logback logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties
<springProfile name="staging">
    <!-- configuration to be enabled when the "staging" profile is active -->  
   <!--  可以指定某段配置只在某个环境下生效 -->  
</springProfile>

静态资源映射规则

image.png
"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<html lang="en" xmlns:th="http://www.thymeleaf.org">

thymeleaf的语法规则

更多用法参考Thymeleaf官方文档

上一篇 下一篇

猜你喜欢

热点阅读