在spring boot种自定义配置文件的读取很方便,不用在写propert的读取类来读取配置文件信息。
下面是我试过的读取springboot读取配置文件的几种方法:
准备:
1.在application.yml文件种加入配置信息:
hank: testConfig: TestDriver
2.新建立配置文件 dbConfig.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test jdbc.username=root jdbc.password=root org.hank.testconfig = testConfig
前面的准备 中我们知道
hank.testConfig 是在application.yml文件中,此文件为springboot 的默认配置文件 jdbc.driver 是在我们自定义的配置文件中的key
方法一:用springboot 自带的类Environment
测试:
@Autowired private Environment env; @Test public void testConfigDefault() { logger.info("Environment get default properties:" + env.getProperty("hank.testConfig")); logger.info("Environment get self properties:" + env.getProperty("jdbc.driver")); }
测试结果
Environment get default properties:TestDriver
Environment get self properties:null
结论:也就是说Environment自带的只能读取默认的配置文件里面的配置信息,自定义的配置文件在Environment是读取不了的。况且在application.yml配置的都是系统自身的项,也就是不随系统环境改变而改变的配置项。一些易变的配置项我们还是自定义文件的比较好。我一般不会这么配置。
方法二:Configurable
建立类ConfigDefault 注解@Configurable
@Component @Configurable public class ConfigDefault { @Value("${hank.testConfig}") private String hankConfig; @Value("${org.hank.testconfig}") private String selfConfig; getter and setter.... }
测试:
@Autowired private ConfigDefault configDefault; @Test public void testConfigDefault() { logger.info("defualt config--hank.testConfig:" + configDefault.getHankConfig()); logger.info("self config--org.hank.testconfig:" + configDefault.getSelfConfig()); }
测试结果:直接报错,Could not resolve placeholder 'org.hank.testconfig' in value "${org.hank.testconfig}"
也就说application.yml文件中没有org.hank.testconfig这配置项,所以在类上加@Configurable也是默认只读取application.yml文件的配置项
方法三:@PropertySource注解
新建model类:
@Component @PropertySource("classpath:dbConfig.properties") public class DataBaseConfig { @Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String userName; @Value("${jdbc.password}") private String password; @Value("${hank.testConfig}") //测试默认配置文件 private String hankConfig; getter and setter... }
测试:
@Autowired private DataBaseConfig config; @Test public void testGetDataBaseConfig() { logger.info("self Config Driver:" + config.getDriver()); logger.info("default config hank.testConfig:" + config.getHankConfig()); }
测试结果:
self Config Driver:com.mysql.jdbc.Driver
default config hank.testConfig:TestDriver
可以看出连同默认配置的信息也读取到了
结论:用@PropertySource("classpath:dbConfig.properties")
指定自定义配置文件路径就可以读取到自定义的配置文件信息,而对于默认配置文件application.yml我们也能在读取自定义配置文件的同时读取到默认配置文件的信息。
以上就是三中读取配置文件的方式,可以看到要想读取自定义的配置文件,就必须要注解指定配置文件路径。
相关推荐
- 配置应用:Spring Boot允许用户进行静态资源处理、任务调度、自定义配置文件读取等,以及自定义启动Banner和配置文件的热部署。 - 系统监控:Spring Boot可以集成Spring Actuator,帮助开发者监控和管理生产环境中...
至于压缩包中的“helloworld”文件,可能是一个简单的示例项目,通常会包含一个基础的Spring Data JPA配置,一个实体类,以及对应的Repository接口,用于展示Spring Data JPA的基本用法。通过查看这个例子,你可以更...
5. **外部化配置**:Spring Boot支持通过`application.properties`或`application.yml`文件来管理配置,也可以从环境变量或命令行参数中读取配置,实现配置的灵活管理。 6. **Spring Cloud集成**:Spring Boot与...
当IoC容器读取配置文件时,如果发现一个属性值需要转化为特定的对象类型,它会自动寻找合适的属性编辑器。Spring提供了一系列内置的属性编辑器,如`StringToBooleanEditor`、`StringToDateEditor`等,可以处理基本...
根据提供的文档信息,本文将对Spring Boot项目的几个关键知识点进行详细的阐述,包括但不限于项目创建、配置文件管理、环境配置切换、自动装配机制、事件监听、以及一些常见的技术整合方案。 ### 一、创建Spring ...
Spring的高层容器视图展示了容器启动时如何读取应用提供的配置信息,生成bean配置注册表,然后实例化bean,并装配依赖关系,为应用提供运行环境。在Spring中,BeanFactory是基础框架接口,而ApplicationContext是...
这个项目的核心技术栈是Spring Boot,它是一个流行的微服务开发框架,用于简化Spring应用程序的初始设置和常规配置。下面我们将详细探讨Spring Boot和Java在构建云笔记系统中的应用。 1. **Spring Boot** - **快速...
Spring Boot 是一个基于 Spring 框架的快速开发工具,旨在简化初始搭建以及配置过程,让开发者能够更快地创建高效、生产级别的应用。本教程涵盖了从基础到进阶的多个主题,帮助你全面掌握 Spring Boot 的核心概念和...
本文将深入探讨Spring Boot的配置文件,包括`application.properties`和`application.yml`,以及如何通过注解来读取和使用这些配置。 首先,Spring Boot支持两种主要的配置文件格式:`.properties`和`.yml`。`....
spring配置文件、配置文件读取、helloworld,自学一二三笔记demo,直接运行参考学习。
本学习笔记代码将带你深入理解Spring的核心概念和技术,包括依赖注入(DI)、面向切面编程(AOP)以及Spring Boot、Spring MVC等模块。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,DI...
在本项目"spring-boot-06-crud"中,我们主要关注的是如何使用Spring Boot实现一个基本的CRUD(创建、读取、更新、删除)功能。Spring Boot是Java开发中的一个流行框架,它简化了配置,使得快速构建可运行的应用程序...
Spring Boot 是 Spring 的一个子项目,旨在简化 Spring 应用的初始搭建和开发过程。它提供了默认配置,可以快速创建生产级别的、基于 Spring 的应用程序。 **单元测试与Mocking** Spring 提供了测试支持,包括 @...
本笔记将深入探讨Spring框架的关键概念和技术,帮助你掌握这一强大的工具。 1. **依赖注入(Dependency Injection,DI)**: DI是Spring的核心特性,它允许我们解耦组件之间的关系,通过外部容器来管理对象的创建...
Jdom是Java解析XML文档的一种库,Spring框架在处理配置文件时可能会用到。Jdom提供了方便的API来创建、修改和读取XML文档,使得开发者能更轻松地处理与XML相关的任务。 3. **模拟Spring功能**: 在学习Spring时,...
它从配置文件或注解中读取Bean定义,并根据这些定义实例化Bean。 3. **AOP(面向切面编程)**:Spring的AOP模块支持声明式事务管理、日志记录、性能监控等。切面是包含关注点的模块化单元,可以将横切关注点如事务...
Spring 框架是 Java 开发中的核心框架之一,它为构建企业级应用程序提供了一个全面的编程和配置模型。Spring 的设计理念是“依赖注入”(Dependency Injection,简称 DI)和面向切面编程(Aspect-Oriented ...