【发布时间】:2019-01-23 18:25:12
【问题描述】:
目前我有这个很棒的工作解决方案:
来自我的 pom.xml:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
资源/mvn.build.properties:
version=${pom.version}
build.timestamp=${timestamp}
BuildInfoProviderImpl.java:
@Service
@PropertySource("classpath:mvn.build.properties")
public class BuildInfoProviderImpl implements BuildInfoProvider {
@Value("${build.timestamp}")
private String dateTime;
@Value("${version}")
private String version;
private BuildInfo buildInfo;
@Override
public BuildInfo getBuildInfo() {
return buildInfo;
}
@PostConstruct
public void activate() {
buildInfo = new BuildInfo(
LocalDateTime.parse(dateTime, Constants.DATE_TIME_FORMATTER),
version);
}
}
HealthEndpoint.java:
@Service
@Path("_health")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public class HealthEndpoint {
private static final Logger LOGGER = LoggerFactory.getLogger(
HealthEndpoint.class);
private BuildInfoProvider buildInfoProvider;
public HealthEndpoint(BuildInfoProvider buildInfoProvider) {
this.buildInfoProvider = buildInfoProvider;
}
@GET
public BuildInfo getBuildInfo() {
LOGGER.debug("Build info has been requested");
return buildInfoProvider.getBuildInfo();
}
}
问题是:如何使用xml-configuration文件配置完全相同的东西?
我尝试使用 maven-war-plugin 添加属性,然后从我的服务中获取它,但这根本不起作用。在类路径中看不到它。仅供参考:它在 ${baseFolder}/target/{app}.war 下生成。
我需要这样的东西,但不知何故我必须设置 maven 构建属性,我尝试的一切都失败了:
<bean id="buildInfoProvider" class="service.impl.BuildInfoProviderImpl"/>
<bean id="healthEndpoint" class="endpoint.HealthEndpoint">
<constructor-arg ref="buildInfoProvider"/>
</bean>
【问题讨论】:
-
这是 Spring 还是 Spring Boot 应用程序?
-
@khmarbaise Spring