我已经在需要配置的Web服务中实现了一些授权。
当前,用户/密码组合已硬编码到Bean配置中。我想将带有用户名和密码的映射配置到application.properties中,以便可以在外部进行配置。
关于如何做到这一点的任何线索?
<bean id="BasicAuthorizationInterceptor" class="com.test.BasicAuthAuthorizationInterceptor"> <property name="users"> <map> <entry key="test1" value="test1"/> <entry key="test2" value="test2"/> </map> </property> </bean>
一个java.util.Properties对象已经是一个对象Map,实际上是一个对象,该对象HashTable又实现了Map。
java.util.Properties
Map
HashTable
因此,在创建属性文件(将其命名为users.properties)时,您应该可以使用PropertiesFactoryBean或加载它<util:properties />并将其注入到类中。
users.properties
PropertiesFactoryBean
<util:properties />
test1=test1 test2=test2
然后做类似的事情
<util:properties location="classpath:users.properties" id="users" /> <bean id="BasicAuthorizationInterceptor" class="com.test.BasicAuthAuthorizationInterceptor"> <property name="users" ref="users" /> </bean>
虽然如果您将a Map<String, String>作为users属性的类型可能会失败…我不会将它们放在application.properties文件中。但这可能只是我。
Map<String, String>
application.properties