springboot项目出现问题

无法解析配置属性,application.properties

img

Spring 配置文件的添加可能会导致无法解析的问题,这可能是由于配置文件中的错误导致的

  • 建议你看下这篇博客👉 :SpringBoot中的全局配置application.properties详解
  • 除此之外, 这篇博客: springboot 实现主从数据库动态切换,可实现读写分离中的 2.application.properties 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • # ----------------------------------------
    # 主数据库
    # ----------------------------------------
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/custom?useunicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    # ----------------------------------------
    # 从数据库
    # ----------------------------------------
    spring.slave-datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.slave-datasource.url=jdbc:mysql://127.0.0.1:3309/custom?useunicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8
    spring.slave-datasource.username=root
    spring.slave-datasource.password=root
    spring.slave-datasource.driver-class-name=com.mysql.cj.jdbc.Driver

    一个配置类处理了targetDataSources对象的初始化.

    那问题都处理了,那具体要怎么使用呢,关键就是在事务之前调用RoutingDataSourceHolder.setDataSource()方法就可以了。我们写一个aop实现吧。

  • 您还可以看一下 张长志老师的SpringBootIDEA版SpringBoot视频教程(上)核心技术篇课程中的 14_SpringBoot_配置-@PropertySource小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的信息和问题描述,可以初步判断是application.properties文件的路径或文件名出现问题,导致系统无法正确读取配置属性。解决方法如下:

    1. 确认application.properties文件的位置和文件名是否正确,通常应该放在项目根路径下的src/main/resources文件夹中,名称应为application.properties。

    2. 检查application.properties文件的格式和内容是否正确,是否有格式错误、拼写错误等问题。可以使用文本编辑器或IDE工具打开文件进行检查。

    3. 如果问题仍然存在,可以考虑使用其他方式来配置Spring Boot项目的属性,如使用YAML格式的配置文件或通过代码来设置属性。具体步骤如下:

    a. 创建application.yml文件,在项目根路径下的src/main/resources文件夹中。

    b. 将原来的application.properties中的内容,按照YAML格式迁移到application.yml文件中,如下所示:

      ```
      spring:
        profiles:
          active: dev
        datasource:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/shiyan5?useUnicode=true&characterEncoding=utf-8&useSSL=true&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
          username: root
          password: 123456
      ```
    

    c. 在Spring Boot项目的主启动类中,添加@EnableConfigurationProperties注解,并创建一个配置类,用于读取和解析YAML配置文件中的属性值。具体参考如下示例代码:

      ```
      @Configuration
      @EnableConfigurationProperties(MyProperties.class)
      public class MyConfig {
          // do nothing
      }
    
      @ConfigurationProperties(prefix = "spring.datasource")
      public class MyProperties {
          private String driverClassName;
          private String url;
          private String username;
          private String password;
    
          // getters and setters
      }
      ```
    

    d. 在需要使用这些属性值的地方,可以通过注入MyProperties类来获取属性值,如下所示:

      ```
      @Autowired
      private MyProperties myProperties;
    
      public void someMethod() {
          String url = myProperties.getUrl();
          // do something with url
      }
      ```
    

    通过以上步骤,可以解决使用Spring Boot开发的项目出现无法解析配置属性application.properties的问题。