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
,但没有构造函数不带参数。即使我添加没有参数的构造函数Bounds
为final
,也无法在PointQuadTree
初始化后对其进行设置。也Bounds
有仅带有参数的构造函数。
之后PointQuadTree
被初始化,我需要它在内存中,需要坐下来能够自动装配它的其他组件读/删除/添加项目。我不知道如何使用Spring
Boot做到这一点。任何帮助,不胜感激。
回答:
这就像以Spring方式创建bean一样简单…
@Configurationpublic 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