0
서버 재부팅, 재배치 등을 유지하기 위해 프로그래밍 방식으로 변경 한 속성이 필요합니다. 기본적으로 변경이 이루어질 때 속성 파일을 수정해야합니다. 이것은 가능한가? 현재 속성이 작동하지만 값이 속성 폴더에서 변경되지 않습니다.liferay에 속성 파일을 저장하는 방법
String realPath = getPortletContext().getRealPath("/");
FileInputStream in = new FileInputStream(realPath+"json.properties");
Properties p = new Properties();
p.load(in);
System.out.println(p.getProperty("json"));
in.close();
p.setProperty("json", "test");
System.out.println(p.getProperty("json"));
FileOutputStream out = new FileOutputStream(realPath+"json.properties");
p.store(out, "test");
in.close();
out.close();
System.out.println(com.liferay.util.portlet.PortletProps.get("json"));
com.liferay.util.portlet.PortletProps.set("json", "change");
com.liferay.util.portlet.PortletProps.set("new", "change");
System.out.println(com.liferay.util.portlet.PortletProps.get("new"));
portal.properties :
json=help
new=new1
json.properties
json=blank
출력 코드가 실행 된 경우 :
빈 테스트 도움 변화
위에서 볼 수 있듯이 일반 자바 속성을 사용해 보았으며 liferay 속성을 사용해 보았습니다. 기본적으로 json을 가져 와서 편집하고 나중에 사용하기 위해 저장해야합니다. 다시 편집 할 때까지 변경 사항을 유지해야합니다.
물론 가능합니다. 모든 프로그램에서 파일을 쓰고 읽을 수 있습니다. 그러나 이것이 당신에게 어떤 문제를 해결할 것인지 알려 주시면, 이것이 우수 사례이거나 문제를보다 쉽게 해결할 수있는 경우 힌트를 드릴 수 있습니다. PortletPreferences를 통해 현재 사용할 수있는 답변 하나에 진술 한 것과 같습니다. (물론, 다른 가능성이 있습니다) –