Spring EL (SpEL) 替换属性文件中的占位符?

Spring EL (SpEL) to replace placeholders from properties file?

我正在使用 Spring Boot and SpEL (Expression Language)。我想在 message.properties 文件中创建 placeholder 以便可以替换值并将其发送到 UI.

message.properties

not.found={0} not found

代码:

@Override
@Transactional
public void deleteEmployee(String employeeId) {
    int deletedCnt = employeeRepository.deleteEmployee(Integer.valueOf(employeeId));
    if(deletedCnt == 0 )
        throw new ResourceNotFoundException(env.getProperty("not.found"));
}

这里我想显示找不到EmployeeId(比如说123)

您的 not.found 属性 下的值只不过是 String,因此您可以对该字符串执行任何操作。 例如

not.found = Employee with id %s not found

并根据需要在您的服务中处理此消息。

throw new ResourceNotFoundException(String.format(env.getProperty("not.found"), employeeId));

此外,您可以访问配置中的其他属性和环境变量。

default.message = Exception occurred:
not.found = ${default.message} ${ENVIRONMENT_VARIABLE}