首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Value返回null

问@Value返回null
EN

Stack Overflow用户
提问于 2019-07-16 00:54:29
回答 2查看 291关注 0票数 0

我正在尝试从属性文件中获取一个值,下面是我尝试注入URL的过程。不确定我这样做是否正确。

我已经在属性文件中为URL设置了一些东西,我非常确定我的注入方法是错误的,但我是一个java新手,所以我不能真正弄清楚解决方案。

代码语言:javascript
复制
public class DatabaseHelperClass {
    static String URL;

    @Value("${databaseURL}")
    public void propertiesSetter(String URL) {
        DatabaseHelperClass.URL = URL;
    }

    public static Connection getOracleConnection() throws SQLException{


        try {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
        }
        catch(ClassNotFoundException ex) {
            System.out.println("Error: unable to load driver class");
            System.exit(1);
        }

        catch(IllegalAccessException ex) {
            System.out.println("Error: access problem while loading");
            System.exit(2);
        }
        catch(InstantiationException ex) {
            System.out.println("Error: unable to instantiate driver");
            System.exit(3);
        }




        System.out.print(URL);
        Connection connection = null;
        System.out.println();

        try {
            connection = DriverManager.getConnection(URL);
            System.out.print(connection);
        }
        catch(SQLException e) {
            System.out.println(e.getMessage());
        }

        return connection;
    }
EN

回答 2

Stack Overflow用户

发布于 2019-07-16 00:58:43

在applicationContext.xml,中,您必须添加要从类路径读取的属性文件:

代码语言:javascript
复制
<context:property-placeholder location="classpath:something.properties, classpath:demo.properties" />

如果要添加多个属性文件,只需用逗号分隔即可

像这样更新你的类:

代码语言:javascript
复制
public class DatabaseHelperClass {

  @Value("${databaseURL}")
  static String URL;


public static Connection getOracleConnection() throws SQLException{


    try {
        Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    }
    catch(ClassNotFoundException ex) {
        System.out.println("Error: unable to load driver class");
        System.exit(1);
    }

    catch(IllegalAccessException ex) {
        System.out.println("Error: access problem while loading");
        System.exit(2);
    }
    catch(InstantiationException ex) {
        System.out.println("Error: unable to instantiate driver");
        System.exit(3);
    }




    System.out.print(URL);
    Connection connection = null;
    System.out.println();

    try {
        connection = DriverManager.getConnection(URL);
        System.out.print(connection);
    }
    catch(SQLException e) {
        System.out.println(e.getMessage());
    }

    return connection;
}
票数 0
EN

Stack Overflow用户

发布于 2019-07-16 01:01:17

如果你使用的是Spring框架,我想简单地写@Value注解是行不通的。您必须编写一个调用,它有助于识别属性文件名。我在下面提供了一个例子。

代码语言:javascript
复制
@Configuration
@PropertySources({
  @PropertySource("file:config/credentials-config.properties"),
  @PropertySource("file:config/app-config.properties")
})
public class ConfigReader {

  @Bean
  public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
    return new PropertySourcesPlaceholderConfigurer();
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57044151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档