【问题标题】:Using values from properties file in spring roo在 spring roo 中使用属性文件中的值
【发布时间】:2013-03-12 04:34:56
【问题描述】:

我是 spring 和 spring-roo 的新手。我尝试构建一个应用程序并从属性文件中读取一些键值对。

我创建了一个 myconfig.properties 文件并将其保存到 src/main/resources/META-INF/spring/。 文件内容为:

## My Configuration settings
myconfig.url=https://1.2.3.4/api.php
myconfig.username=user1
myconfig.password=password1

现在我在同一目录下的 appilcationContext.xml 中添加了一个 bean 配置

  <bean id="MyConfig" class="com.test.client.MyClient">
    <property name="url" value="${myconfig.url}" />
    <property name="username" value="${myconfig.username}" />
    <property name="password" value="${myconfig.password}" />
</bean>

在我的类文件中,我尝试访问这些值,但我得到一个 File not found 错误

     package com.test.client;

     import org.springframework.context.support.AbstractApplicationContext;
     import org.springframework.context.support.ClassPathXmlApplicationContext;
     import org.springframework.roo.addon.javabean.RooJavaBean;
     import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
     import org.springframework.roo.addon.tostring.RooToString;
     import org.springframework.util.LinkedMultiValueMap;
     import org.springframework.util.MultiValueMap;
     import org.springframework.web.client.RestTemplate;

     @RooJavaBean
     @RooToString
     @RooJpaActiveRecord
     public class MyClient {

         private String url;

         private String username;

         private String password;


         public static String login()
 {
    // Construct the spring application context
    AbstractApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

    MyClient config = (MyClient) context.getBean("MyConfig");

    // Register hook to shutdown Spring gracefully
    // See http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-factory-shutdown
    context.registerShutdownHook();

    String token = null;

    final String url = config.getUrl();
    final String username = config.getUsername();
    final String password = config.getPassword();

  ....

感谢您的帮助!

【问题讨论】:

    标签: spring properties spring-roo


    【解决方案1】:

    试试

    AbstractApplicationContext context = new ClassPathXmlApplicationContext("classpath*:META-INF/spring/applicationContext.xml");
    

    但最佳实践是实现接口ApplicationContextAware

    斯特凡诺

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      相关资源
      最近更新 更多