当前位置: 首页 > 知识库问答 >
问题:

Spring Boot无法读取配置文件特定的yaml文件

卢文博
2023-03-14

我在玩spring boot并试图创建一个特定于配置文件的配置文件。我称之为application-local.yml

spring:
 profiles:
  active: local

 mysql:
  db:
   url: jdbc:mysql://localhost:3306/db?serverTimezone=UTC
   driverClassName: com.mysql.jdbc.Driver
   username: root
   password:

hibernate:
 dialect: org.hibernate.dialect.MySQL5Dialect
 show_sql: false

server:
 port: 8080
@Configuration
@EnableTransactionManagement
public class DatabaseConfig {

    @Value("${spring.mysql.db.url}")
    private String url;

    @Value("${spring.mysql.db.username}")
    private String userName;

    @Value("${spring.mysql.db.password}")
    private String password;

    @Value("${spring.mysql.db.driverClassName}")
    private String driverClassName;

    //hibernate
    @Value("${hibernate.dialect}")
    private String hibernateDialect;

    @Value("${hibernate.show_sql}")
    private String hibernateShowSql;

    @Bean
    public DataSource dataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUsername(userName);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Bean(name="entityManagerFactory")
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() {
        LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean =
                new LocalContainerEntityManagerFactoryBean();
        localContainerEntityManagerFactoryBean.setDataSource(dataSource());
        localContainerEntityManagerFactoryBean.setPackagesToScan("xxxx");

        JpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
        localContainerEntityManagerFactoryBean.setJpaVendorAdapter(jpaVendorAdapter);
        localContainerEntityManagerFactoryBean.setJpaProperties(hibernateProperties());
        return localContainerEntityManagerFactoryBean;
    }

    @Bean
    public PlatformTransactionManager platformTransactionManager() {
        JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
        jpaTransactionManager.setEntityManagerFactory(entityManagerFactoryBean().getObject());
        return jpaTransactionManager;
    }

    private Properties hibernateProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect", hibernateDialect);
        properties.put("hibernate.show_sql", hibernateShowSql);
        return properties;
    }
}

我还试图使用gradle命令从终端运行:./gradlew-dspring.profiles.active=local bootrun,但得到了相同的错误。只有当我将YAML文件重构为application.yml时,它才起作用。我做错了什么?我打算有3个配置文件,如本地,开发和Prod。

共有1个答案

贾实
2023-03-14

在分级文件中添加以下内容

bootRun {
  profile: local
}

或者试试

./gradlew bootRun -Dspring.profiles.active=local
 类似资料:
  • 我刚开始穿弹力靴。这就是我要解决的问题。我有一个application.yml文件,它具有以下属性: 我尝试使用以下代码访问KinesisSenderFeature的值: 以及 PropertySourcesPlaceHolderConfigureer bean定义为: 是的,我确实看到了: 将Yaml中的列表映射到Spring Boot中的对象列表 Spring boot YAML配置未读取所有

  • 我不确定我是否很好地理解了Spring概要文件是如何处理yaml和属性文件的。我试图将这两种类型的配置分开(这两个文件不共享任何配置),但在从yaml配置中读取配置文件时遇到了问题。 我的问题是,当我试图(通过xml)配置我的数据源时,这样做: Spring总是使用YAML文件中的最后一个配置,忽略概要文件。我试图通过web.xml中的contex-parameter或直接将活动概要文件传递给JV

  • 我有以下问题。我根据一个给定的概要文件在yaml文件中读取的值创建一个数据源。 我当前的问题是,当我用“dev”配置文件启动应用程序时,serviceId的值是'my-prod-service'。 我在这里做错了什么?

  • 我使用Maven作为我的构建工具。对于配置文件管理在SpringBoot我使用yml文件。 对于我的SpringBoot应用程序,我设置了以下应用程序-*. yml文件: 我对应的pom。xml配置文件配置: 每当我试图通过Maven打包或运行我的应用程序时: 应用程序运行,但它只会返回默认配置文件(application.yml)运行。每次尝试在任何配置的配置文件下运行应用程序时,我都会获得以下

  • 本文向大家介绍基于Python和PyYAML读取yaml配置文件数据,包括了基于Python和PyYAML读取yaml配置文件数据的使用技巧和注意事项,需要的朋友参考一下 一、首先我们需要安装 PyYAML 第三方库 直接使用 pip install PyYAML 就可以(这里我之前是装过的,所以提示我PyYAML已经在这个目录下了,是5.1.2版本的) 二、先看一下我的yaml配置文件中数据的格

  • 问题 怎样读取普通.ini格式的配置文件? 解决方案 configparser 模块能被用来读取配置文件。例如,假设你有如下的配置文件: ; config.ini ; Sample configuration file [installation] library=%(prefix)s/lib include=%(prefix)s/include bin=%(prefix)s/bin prefi