`
resunly
  • 浏览: 41797 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring boot 项目笔记2一自定义配置文件的读取

阅读更多

在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我们也能在读取自定义配置文件的同时读取到默认配置文件的信息。

以上就是三中读取配置文件的方式,可以看到要想读取自定义的配置文件,就必须要注解指定配置文件路径。

 

 

0
0
分享到:
评论

相关推荐

    Spring Boot 学习笔记完整教程.pdf

    - 配置应用:Spring Boot允许用户进行静态资源处理、任务调度、自定义配置文件读取等,以及自定义启动Banner和配置文件的热部署。 - 系统监控:Spring Boot可以集成Spring Actuator,帮助开发者监控和管理生产环境中...

    Spring Data JPA 笔记

    至于压缩包中的“helloworld”文件,可能是一个简单的示例项目,通常会包含一个基础的Spring Data JPA配置,一个实体类,以及对应的Repository接口,用于展示Spring Data JPA的基本用法。通过查看这个例子,你可以更...

    Spring Boot核心技术-笔记-课件.zip

    5. **外部化配置**:Spring Boot支持通过`application.properties`或`application.yml`文件来管理配置,也可以从环境变量或命令行参数中读取配置,实现配置的灵活管理。 6. **Spring Cloud集成**:Spring Boot与...

    Spring学习笔记(11)----自定义属性编辑器

    当IoC容器读取配置文件时,如果发现一个属性值需要转化为特定的对象类型,它会自动寻找合适的属性编辑器。Spring提供了一系列内置的属性编辑器,如`StringToBooleanEditor`、`StringToDateEditor`等,可以处理基本...

    springboot项目笔记(共48页).docx

    根据提供的文档信息,本文将对Spring Boot项目的几个关键知识点进行详细的阐述,包括但不限于项目创建、配置文件管理、环境配置切换、自动装配机制、事件监听、以及一些常见的技术整合方案。 ### 一、创建Spring ...

    Spring全家桶知识笔记.pdf

    Spring的高层容器视图展示了容器启动时如何读取应用提供的配置信息,生成bean配置注册表,然后实例化bean,并装配依赖关系,为应用提供运行环境。在Spring中,BeanFactory是基础框架接口,而ApplicationContext是...

    基于spring-boot+java实现的一个云笔记系统源码

    这个项目的核心技术栈是Spring Boot,它是一个流行的微服务开发框架,用于简化Spring应用程序的初始设置和常规配置。下面我们将详细探讨Spring Boot和Java在构建云笔记系统中的应用。 1. **Spring Boot** - **快速...

    SpringBoot学习笔记完整教程

    Spring Boot 是一个基于 Spring 框架的快速开发工具,旨在简化初始搭建以及配置过程,让开发者能够更快地创建高效、生产级别的应用。本教程涵盖了从基础到进阶的多个主题,帮助你全面掌握 Spring Boot 的核心概念和...

    笔记29-JAVAEE之SpringBoot的配置文件

    本文将深入探讨Spring Boot的配置文件,包括`application.properties`和`application.yml`,以及如何通过注解来读取和使用这些配置。 首先,Spring Boot支持两种主要的配置文件格式:`.properties`和`.yml`。`....

    《深入理解Spring Cloud与微服务构建》学习笔记(一二三)demo

    spring配置文件、配置文件读取、helloworld,自学一二三笔记demo,直接运行参考学习。

    Spring 学习笔记代码

    本学习笔记代码将带你深入理解Spring的核心概念和技术,包括依赖注入(DI)、面向切面编程(AOP)以及Spring Boot、Spring MVC等模块。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,DI...

    spring-boot-06-crud

    在本项目"spring-boot-06-crud"中,我们主要关注的是如何使用Spring Boot实现一个基本的CRUD(创建、读取、更新、删除)功能。Spring Boot是Java开发中的一个流行框架,它简化了配置,使得快速构建可运行的应用程序...

    spring入门笔记

    Spring Boot 是 Spring 的一个子项目,旨在简化 Spring 应用的初始搭建和开发过程。它提供了默认配置,可以快速创建生产级别的、基于 Spring 的应用程序。 **单元测试与Mocking** Spring 提供了测试支持,包括 @...

    spring培训-笔记

    本笔记将深入探讨Spring框架的关键概念和技术,帮助你掌握这一强大的工具。 1. **依赖注入(Dependency Injection,DI)**: DI是Spring的核心特性,它允许我们解耦组件之间的关系,通过外部容器来管理对象的创建...

    spring框架学习笔记

    Jdom是Java解析XML文档的一种库,Spring框架在处理配置文件时可能会用到。Jdom提供了方便的API来创建、修改和读取XML文档,使得开发者能更轻松地处理与XML相关的任务。 3. **模拟Spring功能**: 在学习Spring时,...

    spring5源码分析笔记

    它从配置文件或注解中读取Bean定义,并根据这些定义实例化Bean。 3. **AOP(面向切面编程)**:Spring的AOP模块支持声明式事务管理、日志记录、性能监控等。切面是包含关注点的模块化单元,可以将横切关注点如事务...

    java框架学习笔记spring笔记

    Spring 框架是 Java 开发中的核心框架之一,它为构建企业级应用程序提供了一个全面的编程和配置模型。Spring 的设计理念是“依赖注入”(Dependency Injection,简称 DI)和面向切面编程(Aspect-Oriented ...

Global site tag (gtag.js) - Google Analytics