不同字符串连接到mysql的应用程序属性

时间:2015-04-14 06:44:14

标签: java mysql spring-boot

这是我的applciation.properties for development environment

# thymeleaf
spring.thymeleaf.cache = false

# datasource
spring.datasource.url=jdbc:mysql://localhost:3306/my_db
spring.datasource.username=user_for_development
spring.datasource.password=my_password_for_development
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.hbm2ddl.auto=update

和这个生产环境:

# thymeleaf
spring.thymeleaf.cache = false

# datasource
spring.datasource.url=jdbc:mysql://localhost:3306/my_db
spring.datasource.username=user_for_production
spring.datasource.password=my_password_for_production
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.hbm2ddl.auto=update

如果我运行' mvn package'我的jar项目,使用application.properties进行开发,运行良好但是这个jar在服务器生产中不起作用,因为与mysql的字符串连接不同。

4 个答案:

答案 0 :(得分:0)

我没有在我的jar中打包属性文件。部署的一部分是将正确的属性文件复制到类路径中。

答案 1 :(得分:0)

您可以为Maven forf开发,质量保证,生产等定义多个不同的配置文件。请参阅here

答案 2 :(得分:0)

如果您想将属性文件保存在jar文件中,我建议您使用maven资源插件进行maven过滤,您可以根据您选择的配置文件将所需值放入占位符:例如开发或生产。它看起来如下:

<resources>
    <resource>
        <directory>path/to/resource/folder</directory>
        <includes>
            <include>yourfile.properties</include>
        </includes>
        <filtering>true</filtering>
    </resource>
</resources>

如果maven属性存在,所有占位符都将被替换。

实际上即使你有jar / war文件之外的属性文件,你也可以使用它。

答案 3 :(得分:0)

根据环境,您可以拥有包含属性的特定文件夹: src / main / resources和src / main / resources-prod。然后使用Maven resources plugin Maven profiles,您可以在war / jar等中包含正确的资源。