我是Spring框架的新手。在我的Spring应用程序中,有一些细节,如下所述,这些细节需要在属性文件中维护。
Transaction Name Transaction Id TXT_CCO = 70001 TXT_CCI = 70002 TXT_SSM = 20005
在我的控制器中,有一个如下操作。
@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"; }
根据请求参数 提供者, 我需要获取相关的交易类型ID。例如,如果提供者为 TXT_CCO ,则事务类型id应为 70001 。
有人可以帮我实现这个目标吗
我会说你有2个选择
<util:properties />
@PropertySource
Environment
要简单地加载属性文件,您可以使用PropertiesFactoryBean或更简单的<util:properties />标记(使用PropertiesFactoryBean下面的标记,但更易于配置)。有关更多信息,请参见此处。
PropertiesFactoryBean
只需将以下内容添加到您的xml配置中
<util:properties id="transactions" location="classpath:transaction.properties" />
现在,您有了一个Properties名为的Bean transactions,可以将其注入到控制器中,然后可以使用该Bean 获得所需的属性。
Properties
transactions
@Autowired private Properties transactions;
另一种解决方案是添加带有的@Configuration类@PropertySource以加载属性。之后,您可以使用Environment获取属性。有关Environment更多信息,请参见参考指南中的部分。
@Configuration
@Configuration @PropertySource("classpath:transaction.properties") public class MyConfiguration {}
在您的控制器中,您可以使用Environment获取属性。
@Autowired private Environment env;
资源支持
当然,Spring属性支持可用于Spring的资源加载方法。因此,file:和http:前缀以及适用于used的默认加载规则同样适用ApplicationContext。
file:
http:
ApplicationContext