2011-09-29 12 views
7

Questa domanda è "cugino" di this one involving Android. Ma eccoci nell'ambiente Tomcat.Scopo di System.setProperty in Tomcat

Se nella mia webapp ho impostato una proprietà con System.setProperty("property_name", "property_value");, a quale ambito verrà applicato?

  • tutto JVM in questa macchina
  • tutti Tomcat webapps
  • solo la webapp che esegue l'istruzione
  • solo il thread che esegue l'istruzione
  • qualcos'altro ...

Mille grazie!

risposta

5

Una proprietà di sistema ha un ambito JVM. La proprietà sarà quindi modificata (e disponibile) nell'intera tomcat JVM, per tutte le webapp e per Tomcat stessa.

Si noti che la proprietà di sistema è archiviata in memoria e quindi non persisterà se si interrompe e si riavvia Tomcat.

+1

Sono d'accordo con te, ma non sono stato in grado di trovare il punto in cui il sole/oracolo lo specifichi. Hai qualche referenza? La documentazione API di sistema rimane silenziosa, IMHO. – MRalwasser

1

In Java System.setProperty() si applica sempre all'intera JVM.

Quindi sì, interesserà l'intera istanza Tomcat, incluse tutte le applicazioni web.