Java 如何在具有私有构造函数的类中使用@Value或autowire环境?

Java 如何在具有私有构造函数的类中使用@Value或autowire环境?,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个用例,其中我使用的是一个实用类,它包含的方法都是静态的,构造函数也是私有的。因此,我不是创建类的对象,我只是使用类名访问方法。因此,在实用程序类中,我想访问application.properties。但@Value和自动布线环境都不起作用。它总是返回null 是否有方法访问实用程序类中application.properties中的字段?我搜索了很多,但没有找到任何引用。这就是静态类和字段的问题所在。它们的创建不在Spring或任何其他依赖项注入框架的手中。因此,依赖注入框架无法向其中

我有一个用例,其中我使用的是一个实用类,它包含的方法都是静态的,构造函数也是私有的。因此,我不是创建类的对象,我只是使用类名访问方法。因此,在实用程序类中,我想访问application.properties。但@Value和自动布线环境都不起作用。它总是返回null


是否有方法访问实用程序类中application.properties中的字段?我搜索了很多,但没有找到任何引用。

这就是静态类和字段的问题所在。它们的创建不在Spring或任何其他依赖项注入框架的手中。因此,依赖注入框架无法向其中注入任何价值

您可以访问beanManager并读取值,或者在初始化spring引导时对值进行后期初始化。但是,在Spring启动初始化过程进行期间,您的值仍然为null

最好使用Spring@Scopesingleton定义一个单例bean。
将您的类更改为普通类,并让它的生命周期和创建由Spring管理,您将更容易测试,因为测试静态类并不总是那么容易。

这对您有用吗?这回答了你的问题吗?嗨,汉斯,欢迎来到Stackoverflow!当提出问题时,最好有一个团队来帮助你解决问题。