Wicket:用于指定全局应用程序属性的模式

时间:2011-07-16 13:27:27

标签: java wicket

我有几个与我的应用程序配置相关的属性,我想放在一个文件中,以便集中配置。其他人将使用和修改此应用程序的源代码,因此我尝试通过提供单个配置点使其尽可能简单。

我知道如何使用MyComponentName.properties文件来自定义组件错误消息,L10N等。但我正在尝试为通常不显示字符串的内容提供配置。一些例子:

  • 电子邮件服务器的主机名
  • 使用何种用户身份验证
  • Facebook应用ID

我的Application.java会从global.properties(或其他)加载这些属性,并在初始时将相应的配置移交给我的各个类。我当然可以手动加载文件,但我想知道在Wicket中是否还没有这种支持。

将这些放入web.xml会更好吗?

1 个答案:

答案 0 :(得分:2)

我使用了两种方法。

第一种方法,使用web.xml和wicket应用程序init参数:

  <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来参数化你的bean:

<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>