나는 Spring에 의해 생성 된 빈을 가지고있다. 실제 클래스는 Spring과 다른 JAR에있다. 이 bean은 경로를 생성자 인수로 전달됩니다. 그러나 파일 핸들을 검색하는 데 문제가 있습니다. 파일은 WEB-INF/classes /에 있습니다. WEB-INF를 기반으로 상대 경로 지정을 시도했지만 분명히 작동하지 않았습니다.속성 파일의 경로를 얻고 런타임에 빈에 전달하는 방법
XML :
<bean id="configurationManager" class="package.ConfigurationManager"
scope="singleton">
<property name="configurationMapping">
<bean class="package.PropertiesFileConfigurationMapper">
<constructor-arg type="java.lang.String">
<value>/path/to/file</value>
</constructor-arg>
</bean>
</property>
</bean>
콩 :
나는rm.properties
파일에 적절한 경로를 가져올 수 런타임에 빈에 전달할 수있는 방법
public class ConfigurationMapper {
public ConfigurationMapper(String resource) {
_map = new HashMap<String, String>();
String property = null;
BufferedReader reader = null;
try {
FileReader file = new FileReader(resourcePath);
reader = new BufferedReader(file);
while ((property = reader.readLine()) != null) {
if (property.matches("(.+)=(.+)")) {
String[] temp = property.split("(.+)=(.+)");
_map.put(temp[0], temp[1]);
}
}
} catch (Exception ex){
ex.printStackTrace();
} finally {
if (reader != null)
reader.close();
}
}
//other methods to manipulate settings
}
?
편집 : 생성자 코드가 추가되었습니다.
편집 : 알겠습니다. 생성자 인수를 더 이상 경로를 변경하지 않았습니다. 이제는 Resource가 필요하므로 Spring은 내가 원했던 리소스를 발견했습니다.
클래스 경로 접미사를 사용해보십시오. 나는 classpath : filpath를 의미한다. –