想请问各位大佬, springboot 是不是没办法做到用户自定义数据库账号密码?

2018-10-28 11:56:20 +08:00
 szvone

是不是只有在编译前在配置文件设定好数据的账号密码?

能不能做到类似 php 那样,可以写完一个程序后有一个初始化的过程,用户可以在网页上面自定义数据库的账号密码,然后程序去改写数据库的配置?

如果可以请问有没有类似的教程

3480 次点击
所在节点    问与答
30 条回复
limuyan44
2018-10-28 13:52:06 +08:00
可以的,搜一搜配置中心关键字
Cbdy
2018-10-28 14:09:10 +08:00
可以的,最简单的,比如做一个数据源的代理
ErrorMan
2018-10-28 14:45:05 +08:00
只是想对环境定制的话,Spring Boot 是可以在启动时从环境变量里读取配置。如果说想像 WordPress 那样在启动之后进行配置,可以用新配置生成一份新的配置文件,然后重启程序让 Spring Boot 以新的配置文件初始化
szvone
2018-10-28 15:33:06 +08:00
@Cbdy 不是很懂,有这方面的资料吗?
szvone
2018-10-28 15:33:59 +08:00
@ErrorMan 嗯这个我懂,大概就是生成一份配置文件来替换原有的,但是问题来了,springboot 打包后的是.war 的包,这种要怎么去替换原有的配置文件呢?
szvone
2018-10-28 15:36:39 +08:00
@limuyan44 可能您理解错我的意思了,您可以看三楼的回复,我是想要做一个,程序启动后,能够让用户自定义配置的程序,就比如我发布一个 war 包,用户只需要运行这个 war 包,就能够在网页里面配置数据库的账号密码,给任何一个用户都能用,而无需我用源码根据不同的用户的数据库密码编译对应的 war 包给他们用
aa6563679
2018-10-28 15:48:02 +08:00
@szvone 你打成 jar 包,然后把配置文件放到和 jar 包一个目录也能用的,不一定要打进 jar 包里。
在网页里配置站号密码也能用这个方法做。写个配置到当前目录就行了。只是 Java 没有这习惯,没有现成的轮子
lhx2008
2018-10-28 15:51:40 +08:00
和 jar 包同目录的 config/property.conf 啥的优先级是比 jar 包里面的 conf 大的,所以你的安装程序在这里重建一个 conf 重启就 OK,至于有没有热部署就不太清楚了。或者楼主可以参考下有没有别人写的 Java 论坛博客怎么安装的
slixurd
2018-10-28 15:55:27 +08:00
那就不要用 XML/Annotation 配置数据库连接
自己起个 Service 动态创建连接就好了,这个事情还是挺简单的吧
看看数据库是怎么创建的就好了...
szvone
2018-10-28 19:45:56 +08:00
@slixurd 自己创建的话 还有个问题就是每次服务器重启配置会丢失
szvone
2018-10-28 19:46:49 +08:00
@lhx2008 感谢解答,想请问的是 springboot 默认支持这种配置模式吗?
szvone
2018-10-28 19:48:05 +08:00
@aa6563679 我目前就是尝试了用 txt 来保存,然后动态读取,想知道有没有更好的办法,比如去修改 yml 文件
serical
2018-10-28 20:09:18 +08:00
yml 没试过,不过 properties 是可以的,有个 ResourseBundle 搜下
ErrorMan
2018-10-28 20:42:56 +08:00
@szvone war 包不太清楚,jar 包可以使用启动参数来指定配置文件位置,或者楼上提到的配置优先级,war 部署以后会被解压,应该也支持吧。实在不行就自己写个配置类来读取新配置然后提交给 SpringBoot 容器。部署方面 Spring 的官方教程这方面介绍得很详细可以去看看
johnniang
2018-10-28 21:59:12 +08:00
启动的时候加上参数不就行了么 -Dspring.datasource...
nosky
2018-10-29 08:25:25 +08:00
建议参考一下 halo,一个 JAVA 开发的博客系统
AlkTTT
2018-10-29 08:31:21 +08:00
SpringCloud Config
szvone
2018-10-29 09:11:21 +08:00
@serical 百度了一下看到了资料,这个好像只能读取配置,但是不能修改
szvone
2018-10-29 09:11:47 +08:00
@ErrorMan 如果是通过 java -jar 的方式启动,这个包是不会解压的
szvone
2018-10-29 09:12:24 +08:00
@johnniang 知道端口号可以自定义启动配置,数据源也可以吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/501865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX