【问题标题】:Spring data best practice for preload data that considers application.properties考虑 application.properties 的预加载数据的 Spring 数据最佳实践
【发布时间】:2017-10-28 05:47:39
【问题描述】:

在我的 spring Data 项目中,我更喜欢用data.sql 填充一些数据。它们是图像资源、图标和徽标之类的东西。

我的项目有两个application.properties。一个用于本地开发,另一个用于在具有不同server.adress 的主服务器上发布 我的问题是data.sql 无法从属性中导入变量:

INSERT INTO sticker_table( sticker_type, sticker_img_url , free_sticker) values (1,'http://192.168.34.24:8085/public/ic_avator_boy_1.png',true)

我不能从data.sql 的选定属性中考虑server.address。我想要 http://192.168.34.24:8085 用于开发服务器和 http://192.168.24.250:8080 用于发布。

那么我如何考虑 data.sql 中的 application.properties 变量,或者有更好的方法在起点填充服务器数据?

【问题讨论】:

  • 如何执行脚本?你不能设置环境变量 DEV/PROD 可以使用 Spring @Value 或其他设置,然后根据变量加载属性文件。使用命名变量在 .sql 文件中,您可以在执行脚本之前替换加载的属性中的值。
  • @NitinPrabhu 我这样执行:java -jar -Dspring.profiles.active=propertyName application.jar 但无法了解如何在 data.sql 中使用属性变量

标签: spring spring-data server-configuration


【解决方案1】:

According to the spring-data-jpa documentation,你可以在你的 spring boot 项目中添加一个data-${platform}.sql。你可以用它来区分你的本地服务器和远程服务器之间的区别data-local.sqldata-remote.sql。完成后,您可以控制要加载的文件如下...

java -jar -Dspring.datasource.platform=local application.jar

java -jar application.jar --spring.datasource.platform=remote

【讨论】:

  • 这是预加载数据的最佳做法吗?
猜你喜欢
  • 2011-09-21
  • 2018-12-06
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多