springboot笔记(基础篇)

1、配置文件

      优先级 application.peoperties>application.yml

2、配置文件参数注入

  •     @ConfigurationProperties(prefix="XXX")   用于类上自动从配置文件中注入对象属性寻找依据 XXX(最新版springboot使用该注解需要导入依赖)
    • <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-configuration-processor</artifactId>
          <optional>true</optional>
      </dependency>
      

//示例 类 
@ConfigurationProperties(prefix = "stu")
class Stu{
    private String name;
    private List<String> address;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

//配置文件
application.yml
 stu:
  name:zhangsan

application.properties
stu.name=zhangsan
stu.address[0]=北京

//测试
@SpringBootTest
class MyTest {
    @Autowired
    Student student;
    @Test
    void contextLoads() {
        System.out.println(student.getName());
    }
}
//输出就结果 : zhangsan
  • @Value 从配置文件中给对象属性赋值
@Component
public class Stu {
    @Value("${name}")
    private String name;
    @Value("${age}")
    private int age;
    @Value("${birthday}")
    private Date birthday;
    @Value("${list}")
    private List<String> list;
    @Value("#{${maps}}")//此处外面要加一个#{}不知道为啥????????
    private Map<String,String> maps;
        //get/set省略

}

application.yml

name: lch123
list: 1,2,3,4,5
age: 123
birthday: 2020/2/2
maps: "{key1: 'value1', key2: 'value2'}"

输出结果 
 Stu{name='lch123', age=123, birthday=Sun Feb 02 00:00:00 CST 2020, list=[1, 2, 3, 4, 5], maps={key1=value1, key2=value2}}




@Value和@ConfigurationProperties区别

  @ConfigurationProperties @Value 例 实现功能  批量注入配置文件的属性值 一个一个指定   松散绑定(松散语法) 支持 不支持 last_name == lastName
last-name == lastName SpEL 不支持 支持 #{10*2} JSR303数据校验 支持 不支持  

3、加载局部配置文件

@PropertySource(value = {"classpath:/db.properties"})

该类会读取到db.properties配置文件

4、引入xml

@ImportResource(locations = {"classpath:Student.xml"})

5、自定义配置类

@Configuration

用法

@Configuration
public class StudentConfig {
    @Bean
    public Student getStudent(){
        Student student = new Student();
        student.setBirthday(new Date());
        return student;
    }
}

6、profile多环境支持

  •  application.propertiues(多个配置文件)

spring.profiles.active=dev # 启用 application-dev.properties 配置文件中的配置
spring.profiles.active=prov # 启用 application-dev.properties 配置文件中的配置
  • application.yml
server:
  port: 8080
spring:
  profiles:
    active: dev   # 指定激活的配置代码块
---  #标记一个配置块
server:
  port: 8081
spring:
  profiles: dev   #配置代码块名称

---
server:
  port: 8082
spring:
  profiles: prod  #配置代码块名称
  • 启动时指定
java -jar xxx.jar --spring.profiles.active=dev

7、配置文件读取顺序

根目录下-->根目录下的config目录-->类路径下的config目录-->类路径下

 8、日志配置(默认使用logback)

  • 获取日志对象 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Logger logger = LoggerFactory.getLogger(getClass());
  • 修改日志默认级别
# com包下的级别
logging.level.com=trace
# 设置root级别
logging.level.root=debug
  • 日志文件路径
#指定日志文件生成路径 默认为 项目根目录下   设置logging.file时logging.path不生效
logging.path=D:/log
#指定日志文件名(也可以带路径) 默认文件名spring.log  设置logging.file时logging.path不生效
logging.file=D:/log.log
  • 日志文件输出格式
%d 输出日期时间,
#  %thread 输出当前线程名,
#  %-5level  输出日志级别,左对齐5个字符宽度
#  %logger{50} 输出全类名最长50个字符,超过按照句点分割
#  %msg 日志信息
#  %n  换行符

# 修改控制台输出的日志格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
# 修改文件中输出的日志格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>>
%logger{50} >>> %msg%n
  • 自定义日志配置(当需要定义更丰富的日志功能时。application.properties可能无法满足我们的需要。因此需要使用xml实现更详细的功能,使用不同名称的xml文件名来启动不同的日志框架)
日志框架文件名
logback

logback.xml、 logback-spring.xml

logback.groovy、logback-spring.groovy

log4j2log4j2.xml log4j2-spring.xml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值