V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Mroldx
V2EX  ›  程序员

像 springboot 这种 jar 包运行的方式,真的能做到系统运行中像 PHP 类系统一样启动时候就配置数据相关信息吗

  •  
  •   Mroldx · 2021-04-26 09:54:45 +08:00 · 3650 次点击
    这是一个创建于 1339 天前的主题,其中的信息可能已经有所发展或是发生改变。

    像 springboot 这种 jar 包运行的方式,真的能做到系统运行中像 php 类系统一样启动时候就配置数据相关信息吗 比如: 一启动就需要配置数据库信息,而不是写死在配置文件或第三方配置中心。

    37 条回复    2021-05-12 20:37:11 +08:00
    siweipancc
        1
    siweipancc  
       2021-04-26 09:58:56 +08:00 via iPhone
    支持启动参数配置的,或者定制化在控制台要求输入对应参数
    sagaxu
        2
    sagaxu  
       2021-04-26 09:59:55 +08:00 via Android
    配置文件不能运行时修改?
    dqzcwxb
        3
    dqzcwxb  
       2021-04-26 10:13:02 +08:00
    你好可爱
    Umenezumi
        4
    Umenezumi  
       2021-04-26 10:16:00 +08:00
    java -jar xxxxx

    xxx 为相关参数注入
    manami
        5
    manami  
       2021-04-26 10:17:59 +08:00
    php 能做的 java 基本都能做,java 能做的 php 不一定能做
    Kasumi20
        6
    Kasumi20  
       2021-04-26 10:18:18 +08:00
    你好可爱
    hay313955795
        7
    hay313955795  
       2021-04-26 10:18:25 +08:00
    阿里的 nacos 配置中心可以干这个事情. 或者在启动 jar 包的时候用参数配置..但是这样
    chihiro2014
        8
    chihiro2014  
       2021-04-26 10:19:30 +08:00
    @sagaxu nacos 之类的配置中心就可以帮忙改啊,实时改
    Kamiyu0087
        9
    Kamiyu0087  
       2021-04-26 10:20:40 +08:00   ❤️ 1
    public static void main(String[] args){}
    你猜这个 args 是什么?
    jrtzxh020
        10
    jrtzxh020  
       2021-04-26 10:22:48 +08:00
    基础不扎实。。。
    yeqizhang
        11
    yeqizhang  
       2021-04-26 10:32:09 +08:00 via Android
    你的意思启动后或者第一次访问需要初始化配置?
    那也要有个地方持久化存你配置的这个信息,总不能放内存每次重启都要再配置吧!
    iminto
        12
    iminto  
       2021-04-26 10:41:55 +08:00   ❤️ 1
    基础不牢,地动山摇
    securityCoding
        13
    securityCoding  
       2021-04-26 10:59:20 +08:00
    说个做不到的语言...
    BeautifulSoap
        14
    BeautifulSoap  
       2021-04-26 10:59:37 +08:00 via Android
    启动时 cli 传参是所有编程语言都支持的特性啊,lz 怎么会觉得只有 php 能做到?
    fiypig
        15
    fiypig  
       2021-04-26 11:16:22 +08:00
    你是说动态配置的意思吗, nacos 啊
    wudaye
        16
    wudaye  
       2021-04-26 12:11:07 +08:00 via Android   ❤️ 1
    帖主的意思是项目第一次启动的时候在页面配置数据库等参数这种方式吧。springboot 也可以的,我之前搞过,可以去了解一下外置配置文件
    Smilencer
        17
    Smilencer  
       2021-04-26 12:39:50 +08:00
    --spring.config.location=./application-xxx.yml
    Smilencer
        18
    Smilencer  
       2021-04-26 12:41:19 +08:00
    SpringBoot 配置文件加载顺序,这个很基础了
    mmdsun
        19
    mmdsun  
       2021-04-26 12:48:43 +08:00 via Android
    启动可以加参数自定配置文件位置

    还可以用 spring cloud config
    micean
        20
    micean  
       2021-04-26 13:12:39 +08:00 via Android
    java 本身都可以 -Dkey=value
    wangsongyan
        21
    wangsongyan  
       2021-04-26 13:32:17 +08:00
    @wudaye #16 好像就只有你 get 到楼主的点
    vate32
        22
    vate32  
       2021-04-26 14:45:44 +08:00
    Springboot 的 jar 包运行时可以指定配置文件的位置,也有其默认的外部位置( jar 包同级的 /config 文件夹)。
    参考:
    1. https://www.cnblogs.com/xiaoqi/p/6955288.html
    2. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config
    iyaozhen
        24
    iyaozhen  
       2021-04-26 14:49:42 +08:00   ❤️ 1
    看前面的描述 应该是需要个类似 WordPress 一样的安装页面?
    windyboy
        25
    windyboy  
       2021-04-26 15:18:30 +08:00
    配置可以用环境变量,也可以直接启动命令传入
    上面也有人说过使用配置服务器,应用启动的时候去配置服务器取配置,配置可以运行期动态修改
    xiaochong0302
        26
    xiaochong0302  
       2021-04-26 15:31:26 +08:00
    @iyaozhen 估计是这么个意思
    efaun
        27
    efaun  
       2021-04-26 15:39:44 +08:00
    @wangsongyan #21 你说反了,是楼主没有 get 到提问的智慧
    wangsongyan
        28
    wangsongyan  
       2021-04-26 16:12:06 +08:00
    @efaun #27 也对,不然楼也不会歪成这样
    kennylam777
        29
    kennylam777  
       2021-04-26 16:47:12 +08:00 via iPad
    本來 Java 都做到的事情,還要挑當中最成熟的配置管理方案來戰,樓主是想黑 PHP 的?
    luzhh
        30
    luzhh  
       2021-04-26 16:55:17 +08:00
    你一定是没有读过官方文档,去看看官方文档关于配置文件的说明以及不同方式的优先级。
    zoharSoul
        31
    zoharSoul  
       2021-04-26 17:00:34 +08:00
    除了 16 楼,
    上面一堆人没 get 到楼主的意思
    iseki
        32
    iseki  
       2021-04-26 19:35:36 +08:00 via Android
    可以,你大可以动态写入读取配置文件,实在不爽了现场重新打包也不是不可以呢(
    LukeChien
        33
    LukeChien  
       2021-04-26 20:30:20 +08:00 via Android
    生命周期不一样,PHP 每次请求都重新加载配置创建数据库连接,Java 一般启动的时候就创建连接,你可能需要重启,当时麻烦点也可以实现不重启
    cnzjl
        34
    cnzjl  
       2021-04-27 15:24:57 +08:00
    楼主就是大概就是问如 web 页面配置数据库信息
    Mroldx
        35
    Mroldx  
    OP
       2021-05-12 20:31:55 +08:00
    对的,大概就是问如 web 页面配置数据库信息
    Mroldx
        36
    Mroldx  
    OP
       2021-05-12 20:32:58 +08:00
    Mroldx
        37
    Mroldx  
    OP
       2021-05-12 20:37:11 +08:00
    @LukeChien 是的周期不一样,弄了 nacos 的话也还是要手动刷新一下配置,不会自动去切换
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4570 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:06 · PVG 09:06 · LAX 17:06 · JFK 20:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.