spring boot 核心技术

网友投稿 550 2022-05-30

spring boot  核心技术

一. @PropertySource  @ConfigurationProperties  @ImportResource @Value 的用法

@Component

@ConfigurationProperties(prefix = "person")

@Data

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

public class Person {

@Value("${person.name}")

private String name;

private Integer age;

private List list;

private Map map;

private Dog dog;

}

@Data

public class Dog {

private String name;

private String age;

}

public class MailServiceTest extends MailserverApplicationTests {

@Autowired

private Person person;

@Test

public void getPerson(){

System.out.println(person);

}

}

@SpringBootApplication

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

public class MailserverApplication {

public static void main(String[] args) {

SpringApplication.run(MailserverApplication.class, args);

}

}

编写 自定义的person.properties 文件

person.name=张无忌

person.age=18

person.list=1,2,3

person.map.k1=v1

person.map.k2=v2

person.dog.name=小狗

person.dog.age=7

执行测试方法getPerson  看到控制台输出 person信息 ,说明 自动读取 person.properties 文件 并 注入到 person 对象成功。

编写 beans.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

@ ConfigurationProperties 自动 读取 application.yml 或者 application.properties中的属性 注入到 person中

@PropertySource  用于指定自定义的 配置文件,如果没有指定默认就是 读取 application.properties

@ImportResource 用来导入 spring 的 xml 配置文件,使之生效

二 、spring.profiles.active用法

properties 配置方式 ,以 application-{name}.properties的格式命名

application.prtoperties 文件

server.port=8000

spring.profiles.active = prod #配置当前使用的为生产环境配置文件

application-prod.properties 生产环境配置文件

server-port=8001

application-dev.properties 开发环境配置文件

server.port=8002

yml 文档块配置方式

#yml 文档块的方式指定 使用 生产环境还是 开发 环境配置

server:

port: 8081

spring:

profiles:

active: dev

spring boot 核心技术

---

server:

port: 8082

spring:

profiles: pro

---

server:

port: 8083

spring:

profiles: dev

三种激活方式:

命令行 : --spring.profiles.active= dev

jvm参数 : -Dspring.profiles,active=dev

配置文件中配置: spring.profiles.active=dev

三. 配置文件加载优先级,由高到低

四. 自动配置原理

我们 可以在 application.properties 中 配置 debug=true,在启动项目的时候就可以看到 详细的 自动配置报告,可以看到 那些类自动 配置成功, 哪些类 没有 自动配置成功。

五. 日志框架的使用,统一日志框架到slf4j+logback

每一个日志框架都有自己的实现, 配置文件还是做成日志框架实现自己本身的配置文件。

比如我们在开发一个项目的时候,使用 了 slf4j + logback 日志框架, 但是在 引入的其他框架里面使用了 commons-logging,

log4j ,java.util.logging 进行日志输出,那么这个时候就需要 我们去 统一 日志 框架了,统一日志框架分三步走 :

(1)排除 项目中其他的日志框架依赖

(2)用上图中的中间包来替换掉原有的日志框架

(3)导入slf4j 的 实现 logback

如果我们要引入其他框架,一定要把 这个框架默认的日志依赖移除掉,比如 spring 框架用的是commons-logging ,

spring boot  使用的是 slf4j + logback , 以以下的方式 把 commons-logging 包 排除掉了(避免包冲突),因为用来替换的中间包 和 原来 被 替换掉的中间的包名 都是一样的。

org.springframework

spring-core

commons-logging

commons-logging

Spring Spring Boot

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ansible2.4安装和体验
下一篇:【愚公系列】2022年04月 Kubernetes容器集群快速部署之kind单集群
相关文章