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

@value with@Property tySource("classpath:application.properties")总是返回null[复制]

郎宣
2023-03-14

application.properties

local=true

AppConfig.java

    @PropertySource("classpath:application.properties")
    @Configuration
    public class AppConfig {
        @Value("${local}")
        private Boolean local;

        @Bean
        public DataSource dataSource() {
            DriverManagerDataSource dataSource = new DriverManagerDataSource();

            if(local){
              [..]
            } else {
              [..]
            }

            return dataSource;
        }
    }

    @Bean
    public PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }

冬眠。班

@PropertySource("classpath:application.properties")
public class HibernateUtil {
    static {
        try {
            Properties prop= new Properties();

            if(local){
              [..]
            } else {
              [..]
            }
}

我需要在本地或远程配置我的数据库,但我不能。"H中的本地ibernate.class"总是返回null。为什么?

共有1个答案

居晗日
2023-03-14

@PropertySource(“classpath:application.properties”)是在加载Spring的应用程序上下文时加载属性文件的注释,因此应该在配置类中使用它,您需要@configuration如下:

@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {
}

您还需要一段额外的代码来声明静态bean PropertySourcesPlaceholderConfigurer:

@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {

  @Value("${local}")
  private Boolean local;

  //Used in addition of @PropertySource
  @Bean
  public static PropertySourcesPlaceholderConfigurer   propertySourcesPlaceholderConfigurer() {
      return new PropertySourcesPlaceholderConfigurer();
  }

}

它有助于解析@Value和${...}占位符,请参见:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.html

 类似资料:
  • 我使用Ehcache 2.6.8作为Spring Boot应用程序的一部分,作为Hibernate 4.3.11的二级缓存。我有一个JMX MBean,它允许我检查缓存的内容(如果您感兴趣,可以在这里查看)。 首先,我使用CacheManager名称来获取缓存列表。这很好。我可以用返回缓存。然后我调用。这很好,cacheName是“com.myapp.DomainObjectName”,键被列为“

  • 我试图打开一个文件进行解析(一个二进制文件),但是无论什么fopen()总是返回NULL。 我已经排除了几乎所有的东西,我有一个简单的测试脚本: trigger_error(var_export())的输出;是: 无论我为第二个fopen()选项指定什么标志,我都会得到相同的结果。 现在,明显的问题是该文件是否存在,以及我是否拥有读取该文件的权限?这两个问题的答案都是肯定的。我使用了相对路径和绝对

  • 在fetchplaces方法中,新的window.google.maps.places.PlacesService(map)总是返回null,并且Service.NearbySearch不会引发函数错误。 请帮忙。

  • DatePicker在更改日期之后没有更新。 另外,我尝试了在没有侦听器的情况下获取数据,比如: 也许有人有类似的问题,并找到了解决办法? 编辑1:

  • 问题内容: 我一直在努力让Mongoose从本地MongoDB实例返回数据。我可以在MongoDB Shell中运行相同的命令,然后返回结果。我在stackoverflow上找到了一篇帖子,谈论我在这里遇到的确切问题; 我已经遵循了这篇文章的答案,但是我似乎仍然无法正常工作。我创建了一个简单的项目,试图使事情变得简单,这是代码。 这是2 console.log语句的响应: 错误:空 用户名:nul

  • 我试图模仿REST模板。通过mockito返回exchange方法,但无论我通过mock返回什么,它总是返回空值,即使我抛出异常: 这是实际代码: mockito代码: 在交换模拟中,每个参数都是ArgumentMatcher类型,mockLovList()返回一个LOV列表 它应该返回我嘲笑的任何东西,但它总是返回null