3

我有一个属性文件 myprops.properties,如下所示:

Wsdl=someurl
UserName=user
UserPassword=pasword
Application=appName

在我的控制器内部,我试图访问我的服务中的设置值,如下所示

Properties prop = new Properties();
prop.load(new FileInputStream("resources/myprops.properties"));
myService.setWsdl(prop.getProperty("Wsdl"));
myService.setUserName(prop.getProperty("UserName"));
myService.setUserPassword(prop.getProperty("UserPassword"));
myService.setApplication(prop.getProperty("Application"));

我的问题是我只是不知道使用什么路径。如果这有什么不同的话,它是一个 Spring 项目。理想情况下,我希望将属性文件放在我的“src/main/resources”文件夹中

我意识到这对某些人来说可能非常简单,但我已经尝试在这里和谷歌上搜索解决方案,但我似乎找不到有帮助的解决方案。我尝试在项目中移动文件,但似乎无法弄清楚

我得到的错误是

java.io.FileNotFoundException: resources\drm.properties (The system cannot find the path specified) 

任何建议/解释,甚至是清楚地解释它的链接都会很棒

4

5 回答 5

2

好吧, src/main/resources 在类路径上,你只需要这样做。

Properties properties = PropertiesLoaderUtils.loadAllProperties("你的属性文件名");

于 2018-05-16T11:48:11.477 回答
1

鉴于这src/main/resources是在类路径上,你可以这样做:

Resource resource = new ClassPathResource("/myprops.properties");
Properties props = PropertiesLoaderUtils.loadProperties(resource);
于 2013-02-25T16:13:29.623 回答
1

如果您使用的是 spring,您可以设置您的属性占位符。

 <context:property-placeholder location="classpath:resources/myprops.properties" />

并且在您的bean中,您可以使用@Value注释从属性中注入值

@Autowired
public Foo(@Value("${Wsdl}") String wsdl) {
   ...
}

在上面的情况下,我在构造函数中使用了,但它可以由 Autowired 字段/设置器使用。

因此,在您的服务中,您可能会遇到以下情况:

@Service
public class MyService {
     private final String wsdl;
     private final String username;
     private final String password;
     private final String application;

     @Autowired
     public MyService(
         @Value("${Wsdl}") String wsdl,
         @Value("${UserName}") String username,
         @Value("${UserPassword}") String password,
         @Value("${Application}") String application
         ) {
         // set it to each field.
     }
}
于 2013-02-25T16:18:25.907 回答
0

不要使用FileInputStream; 用于getResourceAsStream()从 servlet 上下文中读取它。

于 2013-02-25T16:10:36.723 回答
0

你总是可以指望mkyong。这是有关如何加载和读取属性文件的示例/教程。

http://www.mkyong.com/java/java-properties-file-examples/

此问题应标记为重复:

  1. 从 Java 包加载属性文件
  2. 如何使用 Java 属性文件?
  3. 在 Java 中加载属性文件
  4. Java 属性文件未加载
  5. 加载属性文件时的 Java NullPointerException
  6. 无法在 Java 中加载属性文件
于 2013-02-25T16:10:54.383 回答