登录

java - 在Spring mybatis的maven项目中如何实现动态配置?

比如在项目中,我们会把数据库连接信息和redis连接信息放在properties文件中,我想把这个文件里的连接信息变成动态,也不需要去重启服务就可以切换,如何实现?

# Java
PHP中文网PHP中文网2177 天前563 次浏览

全部回复(5) 我要回复

  • 迷茫

    迷茫2017-04-17 17:52:23

    Maven中有个叫做Profile的配置,可以针对不同环境进行不同的配置。

    <profiles>
         <profile>
              <id>dev</id>
              <properties>
                   <db.driver>com.mysql.jdbc.Driver</db.driver>
                   <db.url>jdbc:mysql://192.168.1.100:3306/test</db.url>
                   <db.username>dev</db.username>
                   <db.password>dev-pwd</db.password>
              </properties>
         </profile>
         //可定义多个profile,针对不同环境的不同id
         <profile>
         ...
         <profile>
    </profiles>

    使用命令行指定根据不同的Profile Id使用不同的配置

    mvn clean install -P dev

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:52:23

    FYI
    
    http://stackoverflow.com/questions/14117117/dynamically-loading-properties-file-using-spring
    
        <bean id="myProperties" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <!-- check property file(s) every 1 second -->
            <property name="cacheSeconds" value="1"/>
            <property name="basenames">
                <list>
                    <value>myApp/myApp</value>
                </list>
            </property>
        </bean>

    回复
    0
  • PHP中文网

    PHP中文网2017-04-17 17:52:23

    有一个技术,叫做autoconfig的。你可以百度了解一下。
    可以通过配置文件,配置测试环境、开发环境、线上环境,项目会根据不同的情况下,分别加载不同的配置文件。

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:52:23

    不重启服务器想变换连接的数据库是不可能的,可以获取到连接的信息值,但是不可能动态切换到另一个库的

    回复
    0
  • 阿神

    阿神2017-04-17 17:52:23

    关键字jrebel

    回复
    0
  • 取消回复发送