0

私は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>

クラスファイルで値にアクセスしようとしましたが、ファイルが見つかりませんというエラーが表示されます

     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();

  ....

助けてくれてありがとう!

4

1 に答える 1

1

試す

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

ただし、ベスト プラクティスは interface を実装することApplicationContextAwareです。

ステファノ

于 2013-03-22T15:55:16.683 に答える