小编典典

在Spring中使用属性文件

java

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

有人可以帮我实现这个目标吗


阅读 338

收藏
2020-11-30

共1个答案

小编典典

我会说你有2个选择

  1. 使用加载属性 <util:properties />
  2. 使用@PropertySourceEnvironment抽象。

使用 <util:properties />

要简单地加载属性文件,您可以使用PropertiesFactoryBean或更简单的<util:properties />标记(使用PropertiesFactoryBean下面的标记,但更易于配置)。有关更多信息,请参见此处

只需将以下内容添加到您的xml配置中

<util:properties id="transactions" location="classpath:transaction.properties" />

现在,您有了一个Properties名为的Bean transactions,可以将其注入到控制器中,然后可以使用该Bean 获得所需的属性。

@Autowired
private Properties transactions;

使用@PropertySourceEnvironment抽象

另一种解决方案是添加带有的@Configuration@PropertySource以加载属性。之后,您可以使用Environment获取属性。有关Environment更多信息,请参见参考指南中的部分。

@Configuration
@PropertySource("classpath:transaction.properties")
public class MyConfiguration {}

在您的控制器中,您可以使用Environment获取属性。

@Autowired
private Environment env;

资源支持

当然,Spring属性支持可用于Spring的资源加载方法。因此,file:http:前缀以及适用于used的默认加载规则同样适用ApplicationContext

2020-11-30