我需要PointQuadTree在启动时使用带有构造函数参数的Spring Boot 初始化以下类,并使该对象在整个应用程序中可用。构造函数参数’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; } ... }
我试过标注PointQuadTree有@Component,但没有构造函数不带参数。即使我添加没有参数的构造函数Bounds为final,也无法在PointQuadTree初始化后对其进行设置。也Bounds有仅带有参数的构造函数。
@Component
Bounds
final
之后PointQuadTree被初始化,我需要它在内存中,需要坐下来能够自动装配它的其他组件读/删除/添加项目。我不知道如何使用Spring Boot做到这一点。任何帮助,不胜感激。
这就像以Spring方式创建bean一样简单…
@Configuration public class AppBeans{ @Value("${minx:100}") private double minX; ...so on .. @Bean public PointQuadTree pointQuadTree() { return new PointQuadTree(minX...so on); } }
并在想要使用的地方注入这个bean @Autowired
@Autowired
在这里${minx:100},尝试从属性文件读取,如果未指定,则使用默认值作为100
${minx:100}
100