2011-07-16 54 views
3

我有幾個屬性與我的應用程序的配置相關,爲了集中配置,我想將其放置到單個文件中。這個應用程序的源代碼將被其他人使用和修改,所以我試圖通過提供一個配置點來儘可能簡化它。Wicket:用於指定全局應用程序屬性的模式

我知道如何使用MyComponentName.properties文件來定製組件錯誤消息,L10N等。但我試圖爲通常不顯示字符串的東西提供配置。一些例子:

  • 電子郵件服務器的主機名
  • 使用什麼樣的用戶認證的
  • 的Facebook應用程序ID

Application.java將從global.properties(或其他)和手工加載這些特性在初始時將適當的配置關閉到我的各個類。我當然可以手動加載文件,但是我想知道Wicket中是否已經有這種支持。

將這些放入web.xml會更好嗎?

回答

2

我已經使用了兩種方法。

第一種方法,使用的web.xml與檢票應用程序初始化參數:

<filter> 
    <filter-name>WicketApp</filter-name> 
    <filter-class> 
     org.apache.wicket.protocol.http.WicketFilter 
    </filter-class> 
    <init-param> 
     <param-name>applicationFactoryClassName</param-name> 
     <param-value> 
     org.apache.wicket.spring.SpringWebApplicationFactory 
     </param-value> 
    </init-param> 
    <init-param> 
     <param-name>param1</param-name> 
     <param-value>xxx.xxx.xxx.xxx</param-value> 
    </init-param> 
    <init-param> 
     <param-name>param2</param-name> 
     <param-value>Hello</param-value> 
    </init-param> 
    </filter> 
    <filter-mapping> 
    <filter-name>WicketApp</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

您可以通過訪問它們:

MyApplication.get().getInitParameter("param1") 

第二種方法,如果你使用Spring,你可以用你的applicationContext.xml參數化您的beans:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="mail.xxx.com"/> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtp.sendpartial">true</prop> 
     </props> 
    </property> 
</bean> 
相關問題