J2EE 프로젝트에서 응용 프로그램 수준 설정/구성 파일을 유지하는 방법에 대한 권장 사항이 있습니까? 로그 및 로컬 설정 파일에 써야하는 의존성이있는 웹 프로젝트가 있습니다. 어쨌든 로컬 디렉토리에 설정 파일을 저장하고 쓸 수 있습니까?웹 응용 프로그램에서 설정 파일 유지
[종속성의 일부는 다음과 같습니다 : 최대 절전 모드 및 gridgain, 그래서 그들은 로그를 많이 생산]
을 나는 것보다는 어렵지 코드 설정 파일의 위치.
J2EE 프로젝트에서 응용 프로그램 수준 설정/구성 파일을 유지하는 방법에 대한 권장 사항이 있습니까? 로그 및 로컬 설정 파일에 써야하는 의존성이있는 웹 프로젝트가 있습니다. 어쨌든 로컬 디렉토리에 설정 파일을 저장하고 쓸 수 있습니까?웹 응용 프로그램에서 설정 파일 유지
[종속성의 일부는 다음과 같습니다 : 최대 절전 모드 및 gridgain, 그래서 그들은 로그를 많이 생산]
을 나는 것보다는 어렵지 코드 설정 파일의 위치.
WEB-INF
폴더 아래에 구성 파일을 저장해야합니다. 디렉토리 /WEB-INF/config
을 작성할 수 있습니다. 그들이 수업 경로에 있어야만한다면 /WEB-INF/classes
. 이 방법으로 위치를 하드 코드하지 않고 응용 프로그램에서 잘 알려진 위치에 배치합니다.
/WEB-INF
안에 넣는 것이 중요하므로 브라우저에서 파일에 액세스 할 수 없습니다.
또 다른 방법은 그들이 webapps 디렉토리에 있지 그래서 당신이 당신의 구성 파일의 위치를 지정 web.xml
구성에 매개 변수를 추가 할 수 있습니다. context-param
을 추가하면됩니다. 예를 들어 :
<context-param>
<param-name>configuration</param-name>
<param-value>/var/myapp/config</param-value>
</context-param>
값
은 구성라는 이름의 서블릿 컨텍스트 초기화 매개 변수로 웹 응용 프로그램에 표시 될 것이다. 그런 다음 기본 경로로 사용하여 구성 파일을 읽을 수 있습니다 (ServletContext
에서
getInitParameter
메서드를 호출하여 값을 가져옵니다).
하지만이 설정 파일은 클래스 경로에서 필요하지 않습니다.
Soundlink와의 합의.
데이터베이스에 설정을 저장할 수도 있습니다. 서블릿이 시작되면 설정 데이터가 데이터베이스에서로드되어야합니다.
데이터베이스의 특정 테이블 집합이나 응용 프로그램의 데이터베이스가 필요하기 때문에이 솔루션이 마음에 들지 않습니다. 내가 작업하고있는 데이터베이스는 이미 상당히 큽니다. 파일을 설정하면 웹 응용 프로그램을 쉽게 관리 할 수 있습니다. – monksy
구성 파일의 경로를 webapp의 클래스 경로에 추가하기 만하면됩니다. 이는 일반적인 접근 방법이며 많은 API는 클래스 경로에서 구성을로드하도록 설계되었습니다. 해당 파일을 수동으로로드하는 경우 ClassLoader#getResourceAsStream()
을 사용하여 클래스 경로 자원 InputStream
을 얻을 수 있습니다.
먼저 webapp 디렉토리 외부의 고정 경로를 만들어 구성 파일을 삭제합니다. /var/webapp/config
. 그런 다음이 경로를 클래스 경로에 포함하도록 servletcontainer를 구성하십시오. Tomcat의 경우 /conf/catalina.properties
파일의 shared.loader
또는 common.loader
속성에서 지정할 수 있습니다.
이렇게하면, 설치된 모든 웹 응용 프로그램에서 구성 파일을 볼 수 있습니다. webapp이 하나뿐이라면 괜찮습니다. 그렇지 않으면 문제가 될 수 있습니다. – Soundlink
웹 응용 프로그램을 다시 배포 할 때마다 로그가 손실됩니다. – BalusC
그건 나를 괴롭히지 않습니다.로그는 Tomcat 로그 폴더로 이동합니다. [나를 괴롭히지 않습니다.] – monksy
웹 -INF는 전쟁으로 컴파일 되었습니까 아니면 전쟁 외부입니까? – monksy