【发布时间】:2015-03-19 14:06:18
【问题描述】:
我需要在启动时使用带有构造函数参数的 Spring Boot 初始化以下 PointQuadTree 类,并使该对象在整个应用程序中可用。构造函数参数 'minX, maxX, ...' 需要来自 application.properties 文件。
PointQuadTree
public class PointQuadTree<T extends PointQuadTree.Item> {
private final Bounds mBounds;
public PointQuadTree(double minX, double maxX, double minY, double maxY) {
this(new Bounds(minX, maxX, minY, maxY));
}
...
}
界限
public class Bounds {
public final double minX;
public final double minY;
public final double maxX;
public final double maxY;
public final double midX;
public final double midY;
public Bounds(double minX, double maxX, double minY, double maxY) {
this.minX = minX;
this.minY = minY;
this.maxX = maxX;
this.maxY = maxY;
midX = (minX + maxX) / 2;
midY = (minY + maxY) / 2;
}
...
}
我试过用@Component注释PointQuadTree,但是没有没有参数的构造函数。即使我添加一个不带参数的构造函数Bounds 是final,所以在PointQuadTree 初始化后无法设置。 Bounds 也有一个只带参数的构造函数。
PointQuadTree 初始化后,我需要将它放在内存中,并且需要能够在其他组件中自动连接它以读取/删除/添加项目。我不知道如何用 Spring Boot 做到这一点。非常感谢任何帮助。
【问题讨论】:
-
我没有时间给出完整的答案,但使用 JavaConfig 来构造 bean 并为值使用
@ConfigurationProperties。
标签: java spring spring-boot