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

Spring-从类的静态字段中的属性文件中读取属性值

松昱
2023-03-14

我有一个实用工具类,其中我有一个方法,它需要用户名和密码来连接其他URL。我需要将用户名保存在属性文件中,这样我就可以随时更改它。但当我在静态方法中使用它(作为实用程序类)时,问题是它显示为空(即它不能从属性文件中读取)。

但当我在其他控制器中输入这些值时,它们就会到达那里。所以我的问题是如何读取静态字段中的属性值

<bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath*:/myservice_detaults.properties</value>
            <value>classpath*:/log4j.properties</value>
        </list>
    </property>
</bean>
  @Value("${app.username}")
      static String userName;

public static connectToUrl(){
  //use userName
 //userName showing null
}

共有1个答案

柯乐童
2023-03-14

Utility类中,可以有一个setter方法来设置属性,然后可以使用MethdInvokingFactoryBean

class Utility{
    static String username;
    static String password;
    public static setUserNameAndPassword(String username, String password){
        Utility.username = username;
        Utility.password = password;
    }
    //other stuff
}

<bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath*:/myservice_detaults.properties</value>
            <value>classpath*:/log4j.properties</value>
        </list>
    </property>
</bean>

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="staticMethod" value="foo.bar.Utility.setUserNameAndPassword"/>
    <property name="arguments">
        <list>
            <value>${username}</value>
            <value>${password}</value>
        </list>
   </property>
</bean>
 类似资料:
  • 我试图只使用注释创建Spring bean。我无法从属性文件加载@Bean类的值。 下面是我的代码: 知道我做错了什么吗?

  • 问题内容: 在angularJS中,如何从属性文件中读取值? app.js: 问题答案: 如果是驻留在Web服务器上的文件,则只需执行以下操作: 您可以在此处查看示例: http://plnkr.co/edit/3Ne3roFOwcfVmg2mgnUr?p=preview

  • 问题内容: 我正在尝试将以下Objective-C代码转换为Swift。在我的Objective-C代码中,有一个静态变量,可以从类方法中对其进行访问。 由于您无法从Swift的类函数中访问像这样声明的类型,因此我为此创建了一个存储属性。 我试图从这样的类函数中对其调用方法。 但是我得到这个错误 类型’[AnyObject]’的不可变值仅具有名为’removeAll’的变异成员 。 谁能告诉我此错

  • 问题内容: 我创建了一个REST Web服务,在其中创建了config.properties文件来存储和检索整个应用程序中的一些用户名和密码。我将其存储在/src/main/resources/config.properties中。 当我尝试从eclipse的Java代码加载它时,它工作正常。但是当我将它部署在tomcat中时,它没有加载。我用来加载属性文件的代码是 谁能帮我解决这个问题 问题答案

  • 我需要从属性文件加载数据源属性 db.properties: 这是数据源(camelcontext.xml): 我试着这样做,但没用。 我的路由是在java dsl中实现的。

  • 在产品代码中,我可以使用以下代码来阅读aws。违约来自