Tôi không biết những gì phiên bản của Tomcat bạn sử dụng, nhưng trong Tomcat 7 trong file catalina.sh bạn có thể chỉ định CATALINA_OPTS biến và biến này sẽ được chuyển cho JVM.
Nhưng có thể đặt biến môi trường không phải là cách tốt nhất để đạt được mục tiêu của bạn. Có lẽ tốt nhất sẽ tạo ra các "app.properties" tập tin riêng biệt, và bao gồm nó trong applicationContext như thế này:
<context:property-placeholder location="classpath*:app.properties" />
Và giải pháp cho catalina.sh
# CATALINA_OPTS (Optional) Java runtime options used when the "start",
# "run" or "debug" command is executed.
# Include here and not in JAVA_OPTS all options, that should
# only be used by Tomcat itself, not by the stop process,
# the version command etc.
# Examples are heap size, GC logging, JMX ports etc.
dụ:
CATALINA_OPTS = "-Dfolder = Dev"
EDIT:
cho các cửa sổ nó phải được cái gì đó như set CATALINA_OPTS="-Dfolder=Dev"
EDIT:
Trong cấu hình Spring bạn có thể sử dụng tài sản hệ thống giống như $ {PROPERTYNAME}, và cũng có thể bao gồm tập tin với định nghĩa tài sản, với context:property-placeholder
, và tất cả được xác định trong thuộc tính tệp đó cũng trở thành có sẵn trong cấu hình.
Ví dụ: bạn có các thuộc tính bộ cơ sở: config.properties và tập hợp các tệp có cài đặt kết nối db (DEV.properties, UAT.properties, PROD.properties). Vì vậy, làm thế nào bạn có thể bao gồm các thuộc tính khác nhau cho môi trường khác nhau? Nó có thể được thực hiện nó nhiều cách, ví dụ, thuộc tính hệ thống đặt trong catalina.bat
set CATALINA_OPTS="-Dbuild=DEV"
và trong applicationConfig.xml
<context:property-placeholder location="classpath*:${build}.properties, classpath*:config.properties" />
Hoặc bạn có thể tạo khác nhau cấu hình xây dựng và đưa vào WAR thức chỉ một thuộc tính (DEV, UAT, PROD) cho mỗi cấu hình xây dựng. Trong applicationConfig thiết lập một cái gì đó như:
<context:property-placeholder location="classpath*:*.properties" />
Tôi nghĩ bạn nên thử sử dụng các tham số [ServletContext] (http://docs.oracle.com/javaee/5/api/javax/servlet/ServletContext.html), vì nó một dự án web. –
Tôi nghĩ rằng đây không phải là những gì tôi cần. Tôi cần phải đặt giá trị trên apache cho WAR, không phải trong phát triển. Ngoài ra tôi cần phải thay đổi giá trị thời gian để phát triển, thử nghiệm và Demo môi trường. Cảm ơn anyway –
Đó là lý do tại sao tệp web.xml tồn tại. Nó là một bộ mô tả triển khai, cố tình tách biệt với mã. – EJP