Spring - 将web表单绑定到application.properties文件

时间:2017-09-25 03:16:27

标签: java spring spring-mvc

我有一个Web表单,可以让用户更新appliaction.properties,这样用户就不必转到该文件进行编辑了。我想从application.properties文件加载值并显示在Web表单文本字段中。用户编辑一些更改后,用户可以更新application.properties文件。

问题 - 除了在Spring中使用@value之外,如何将我的Web表单绑定到application.properties文件?由于键/值对可能通过Web表单更新,我认为@value不是正确的选择。

2 个答案:

答案 0 :(得分:2)

应用程序属性用于应用程序启动时需要加载的设置,然后连接到数据库,例如,使用该文件中指定的用户名和密码(尽管也可以使用环境变量。)

除了使用Refresh Scope注释之外,您不应该在运行时编辑此文件。但我不建议你这样做,因为实际上很难实现支持在运行时更改配置的应用程序。

还有Spring Cloud Config服务器用于在运行时重新加载属性,并提供REST API,尽管您主要只使用git。

但关键在于他们都提到配置,这只是开发人员所做的事情。我也不认为你想使用文件系统来存储你的状态,而是想拥有数据库。在数据库上使用文件系统有很多原因我现在不会进入它们。

我会假设你是一名初学者,正在看你的代表。我能给你的最好建议是观察其他人正在做的事情并从中学习。大多数时候,人们都在做类似的事情,因为这是正确的事情。如果你找不到其他人在Spring应用程序中根据表单提交更改属性文件,而是使用数据库,你可能想要使用数据库。

答案 1 :(得分:0)

我们上个月处于类似情况,客户端需要在运行时更新配置文件。 我们创建了一个中央Spring组件,使用@Value

从文件加载所有属性
@Autowired
ConfigurationManagerComponent configComponent;
String myActualUserName=configComponent.getUserName();

然后,在任何时候你需要获取或保存属性,只需注入此组件并使用其getter和setter

select * from T limit 100

然后,您可以从配置组件中获取控制器中的所有数据,并将它们设置为弹簧模型以填充网页中的表单,在编辑后保存时,您始终可以使用配置组件的setter(更新类和属性)文件)。

这种方法不是标准,只是我们用来解决问题的解决方案,它现在可以给出好的结果。 您还可以检查Apache commons配置Here以获取其他解决方案。 希望这会有所帮助。

相关问题