环境配置: spring profile 与 maven profile

在开发过程中,我们的软件会面对不同的运行环境,比如开发环境、测试环境、生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,很容易出错,而且浪费劳动力。  
maven提供了一种方便的解决这种问题的方案,就是profile功能。

profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。

 profile定义的位置

(1) 针对于特定项目的profile配置我们可以定义在该项目的pom.xml中。(下面举例是这种方式)

(2)

(3)

SpringProfile中,Profile存在两种状态,一种为默认加载的profile(spring.profiles.default),一种为指定激活的profile(spring.profiles.active)。如果程序未指定active状态的profile,那么执行default状态的profile,如果两种状态都指定,则优先执行或选择active状态的profile

maven的优点在于项目构建,通过命令来构建不同环境的包,
spring则是通过初始化参数和设置环境变量来设置激活的profile

文件结构
环境配置: spring profile 与 maven profile_第1张图片

pom.xml配置
1、profile配置

<profiles>
        
        <profile>
            <id>devid>
            <properties>
                 
                <package.environment>devpackage.environment>
            properties>
            
            <activation>
                <activeByDefault>trueactiveByDefault>
            activation>
        profile>
        
        <profile>
            <id>preid>
            <properties>
                <package.environment>prepackage.environment>
            properties>
        profile>
        <profile>
            
            <id>proid>
            <properties>
                <package.environment>propackage.environment>
            properties>
        profile>
    profiles>

2、resources配置

 <build>
        <resources>
            <resource>
                <directory>src/main/resourcesdirectory>
                <excludes>
                    <exclude>environment/dev/**exclude>
                    <exclude>environment/pre/**exclude>
                    <exclude>environment/pro/**exclude>
                excludes>
            resource>
            <resource>
                <directory>src/main/resources/environment/${package.environment}directory>
            resource>
        resources>
    build>

以上配置会将src/main/resources下除了标签下的文件编译进classpath下。

你可能感兴趣的:(spring,maven)