我是 Spring 框架的新手。在我的 Spring 应用程序中,有一些详细信息如下,这些详细信息需要在属性文件中维护。
Transaction Name Transaction Id
TXT_CCO = 70001
TXT_CCI = 70002
TXT_SSM = 20005
在我的 Controller 中,有一个操作如下。
@RequestMapping(value = {"/ValidateWalletAmount**"}, method = RequestMethod.GET)
public @ResponseBody String validateWalletAmount(@RequestParam("mobile") String mobile,
@RequestParam("pin") String merchant_pin,
@RequestParam("provider") String provider,
@RequestParam("currency_type") String currency_type,
@RequestParam("amount") String amount) {
//TO DO - Get txnTypeId by provider
return "02 | 1000.00 | 0.00";
}
根据请求参数provider我需要获取相关的交易类型id。例如,如果提供商是 TXT_CCO,交易类型 ID 应为 70001。
有人可以帮我实现这个目标吗
最佳答案
我想说你有两个选择
- 使用
<util:properties />
加载属性 - 使用
@PropertySource
和Environment
抽象。
使用 <util:properties />
要简单地加载属性文件,您可以使用 PropertiesFactoryBean
或者更容易 <util:properties />
标签(它使用下面的PropertiesFactoryBean
,但更容易配置)。请参阅here了解更多信息。
只需将以下内容添加到您的 xml 配置
<util:properties id="transactions" location="classpath:transaction.properties" />
现在你有一个Properties
名为 transactions
的 bean您可以将其注入(inject)到您的 Controller 中,然后您可以使用它来获取您需要的属性。
@Autowired
private Properties transactions;
使用 @PropertySource
和Environment
抽象
另一个解决方案是添加 @Configuration
类 @PropertySource
加载属性。之后您可以使用Environment
来获得属性。请参阅 Environment
引用指南中的部分了解更多信息。
@Configuration
@PropertySource("classpath:transaction.properties")
public class MyConfiguration {}
在您的 Controller 中,您可以使用 Environment
获取属性。
@Autowired
private Environment env;
资源支持
当然,Spring 属性支持可与 Resource loading 一起使用。 Spring 临近。所以file:
和http:
前缀以及适用于使用的 ApplicationContext
的默认加载规则也有效。 .
关于java - 在 Spring 中使用属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32195550/