如何通过maven打包使得spring加载对应的配置文件,对应的类,引入对应的jar?

1 POM修改  第一个是根据不同的打包参数,引用不同的jar

<dependencies>
		<dependency>
			<groupId>com.**.**</groupId>
			<artifactId>orderbank-cbd-service-${maven-site-suffix}</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
<dependencies>

	<profiles>
		<profile>
			<id>cbd-jd-test</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<spring-config-file>spring-config-cbd-jd.xml</spring-config-file>
				<profileName>cbd-jd</profileName>
				<maven-site-suffix>jd</maven-site-suffix>
				<props>src/main/mvn-filters/cbd-jd/test.properties</props>
				<props-dir>cbd-jd/</props-dir>
			</properties>
		</profile>
		<profile>
			<id>cbd-jd-pre</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<spring-config-file>spring-config-cbd-jd.xml</spring-config-file>
				<profileName>cbd-jd</profileName>
				<maven-site-suffix>jd</maven-site-suffix>
				<props>src/main/mvn-filters/cbd-jd/pre.properties</props>
				<props-dir>cbd-jd/</props-dir>
			</properties>
		</profile>
		<profile>
			<id>cbd-jd-prod</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<spring-config-file>spring-config-cbd-jd.xml</spring-config-file>
				<profileName>cbd-jd</profileName>
				<maven-site-suffix>jd</maven-site-suffix>
				<props>src/main/mvn-filters/cbd-jd/prod.properties</props>
				<props-dir>cbd-jd/</props-dir>
			</properties>
		</profile>
		<profile>
			<id>cbd-id-test</id>
			<properties>
				<spring-config-file>spring-config-cbd-id.xml</spring-config-file>
				<profileName>cbd-id</profileName>
				<maven-site-suffix>id</maven-site-suffix>
				<props>src/main/mvn-filters/cbd-id/test.properties</props>
				<props-dir>cbd-id/</props-dir>
			</properties>
		</profile>
		<profile>
			<id>cbd-id-pre</id>
			<properties>
				<spring-config-file>spring-config-cbd-id.xml</spring-config-file>
				<profileName>cbd-id</profileName>
				<maven-site-suffix>id</maven-site-suffix>
				<props>src/main/mvn-filters/cbd-id/pre.properties</props>
				<props-dir>cbd-id/</props-dir>
			</properties>
		</profile>
		<profile>
			<id>cbd-id-prod</id>
			<properties>
				<spring-config-file>spring-config-cbd-id.xml</spring-config-file>
				<profileName>cbd-id</profileName>
				<maven-site-suffix>id</maven-site-suffix>
				<props>src/main/mvn-filters/cbd-id/prod.properties</props>
				<props-dir>cbd-id/</props-dir>
			</properties>
		</profile>
	
	</profiles>


		<build>
		<finalName>${name}-${version}</finalName>
		<filters>
			<filter>${props}</filter>
		</filters>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>${props-dir}props/*</include>
				</includes>
				<filtering>true</filtering>
			</resource>
		</resources>
		<plugins>
			<!-- 编译plugin -->
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- resources 编码 -->
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.4.3</version>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- Source attach plugin -->
			<plugin>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.0.4</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<webResources>
						<webResource>
							<directory>src/main/webapp/WEB-INF</directory>
							<includes>
								<include>web.xml</include>
							</includes>
							<filtering>true</filtering>
							<targetPath>WEB-INF</targetPath>
						</webResource>
					</webResources>
				</configuration>
			</plugin>
		</plugins>
	</build>

2 web.xml   


<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:${spring-config-file}</param-value>
</context-param>

<context-param>
	<param-name>spring.profiles.active</param-name>
	<param-value>${profileName}</param-value>
</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

3 WEB  mvn-filter里打包时是根据不同的打包参数让不同的配置文件替换到sources下的占位符里

 

 

4java 下面通过spring的profile注解,可以使得Spring根据不同的打包参数加载不同的bean

@Profile("cbd-th")
@Service("orderBankTest1Service")
public class OrderBankTest1CBDServiceTh extends OrderBankTest1CBDBaseService implements OrderBankTest1Service{
    @Override
    public String test1CBDFunction() {
        System.out.println("th");
        return "TH";
    }
}

@Profile("cbd-jd")
@Service("orderBankTest1Service")
public class OrderBankTest1CBDServiceIn extends OrderBankTest1CBDBaseService  implements OrderBankTest1Service{

    @Override
    public String test1CBDFunction(){
        System.out.println("cbd-jd");
        return "cbd-jd";
    }
}

5 上面通过maven的profile加载比较麻烦,通过spring的profile加载更简单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值