创建“常量”类/接口是一种广泛使用的方法,但我认为这是一种有缺陷的方法。它创建了一种奇怪的耦合,系统中不同层的类突然开始依赖于一个常量类。通过查看常量类也变得难以理解,谁正在使用哪个常量?更不用说它完全模拟了抽象。您突然有了一个常量类,其中包含有关要在 jsp 上显示的错误消息、第三方 api 的用户名和密码、线程池大小等信息。所有这些都在一个“我知道一切”类中
所以尽量避免使用常量类/接口。查看您的控制器/服务,如果特定服务类需要您希望在属性文件中公开的特定配置值,请将其注入类并将其存储为实例级常量。从抽象的角度来看,这种设计更加简洁,它也有助于轻松地对这个类进行单元测试。
在 Spring 中,您可以创建属性文件的句柄,如下所示:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:my-application.properties" />
</bean>
正如代码所示,您可以在此处提及多个属性文件。完成此操作后,您可以在上下文中的其他位置引用上述属性文件中的密钥,如下所示:
<bean id="xx" class="com.xx.SomeClass" p:imageUrl="${categories.images}"/>
这里的SomeClass
实例有一个名为的属性imageUrl
,现在注入了针对categories.images
名为的属性文件中的键提到的值my-application.properties
希望这可以帮助。