Spring Boot在启动时使用构造函数参数初始化bean

我需要PointQuadTree在启动时使用带有构造函数参数的Spring Boot" title="Spring Boot">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,但没有构造函数不带参数。即使我添加没有参数的构造函数Boundsfinal,也无法在PointQuadTree初始化后对其进行设置。也Bounds有仅带有参数的构造函数。

之后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

在这里${minx:100},尝试从属性文件读取,如果未指定,则使用默认值作为100

以上是 Spring Boot在启动时使用构造函数参数初始化bean 的全部内容, 来源链接: utcz.com/qa/434751.html

回到顶部