Spring启动应用程序依赖库失败
Spring Boot application dependency library fails
我有一个 Spring Boot 应用程序(在 http://start.spring.io -JDK8,Spring Boot 2.6.6 中创建)。我能够构建并启动它。
我添加了对现有库的依赖:
<dependency>
<groupId>com.connect_responsibilitymgr_services</groupId>
<artifactId>connect-responsibilitymgr-services</artifactId>
<version>1.0.0</version>
</dependency>
在我的实现中,我得到了一个在依赖库中定义的 class 的实例:
ToolkitApi toolkitApi = new ToolkitApi();
UserProfile profile = toolkitApi.getUserProfile("123456");
我在“getUserProfile”的实现中收到 NullPointerException:
public UserProfile getUserProfile(String id) throws Exception {
try {
HttpHeaders headers = new HttpHeaders();
headers.set("toolkit-token",
CryptoUtils.decrypt(**toolkitConfiguration**.getClientToken(), **toolkitConfiguration**.getEncryptedKey()));
其中“toolkitConfiguration”未实例化。为空;
在 ToolkitApi 实现中,Bean 正在被自动装配:
@Controller
public class ToolkitApi {
private static final Logger log = LoggerFactory.getLogger(ToolkitApi.class);
@Autowired
private GISToolConfiguration.ToolkitConfigInfo toolkitConfiguration;
.....
@Bean
@ConfigurationProperties("toolkit")
ToolkitConfigInfo toolkitConfigInfo() {
return new ToolkitConfigInfo();
}
public static class ToolkitConfigInfo {
private String hostname;
private String port;
private String clientToken;
private String encryptedKey;
ToolkitConfigInfo 的所有属性都在“application.properties”中定义,我可以阅读它们。
所以我的“GISToolConfiguration.ToolkitConfigInfo toolkitConfiguration”永远不会被实例化。我是 Spring Boot 的新手,对我来说,依赖库中的 Bean 似乎由于某种原因没有被实例化。可能是什么问题?
您正在用 new
实例化您的 toolkitApi
:
ToolkitApi toolkitApi = new ToolkitApi();
Spring DI 无法注入toolkitConfiguration
。让 Spring 将 toolkitApi
注入到你使用它的地方。
我有一个 Spring Boot 应用程序(在 http://start.spring.io -JDK8,Spring Boot 2.6.6 中创建)。我能够构建并启动它。
我添加了对现有库的依赖:
<dependency>
<groupId>com.connect_responsibilitymgr_services</groupId>
<artifactId>connect-responsibilitymgr-services</artifactId>
<version>1.0.0</version>
</dependency>
在我的实现中,我得到了一个在依赖库中定义的 class 的实例:
ToolkitApi toolkitApi = new ToolkitApi();
UserProfile profile = toolkitApi.getUserProfile("123456");
我在“getUserProfile”的实现中收到 NullPointerException:
public UserProfile getUserProfile(String id) throws Exception {
try {
HttpHeaders headers = new HttpHeaders();
headers.set("toolkit-token",
CryptoUtils.decrypt(**toolkitConfiguration**.getClientToken(), **toolkitConfiguration**.getEncryptedKey()));
其中“toolkitConfiguration”未实例化。为空;
在 ToolkitApi 实现中,Bean 正在被自动装配:
@Controller
public class ToolkitApi {
private static final Logger log = LoggerFactory.getLogger(ToolkitApi.class);
@Autowired
private GISToolConfiguration.ToolkitConfigInfo toolkitConfiguration;
.....
@Bean
@ConfigurationProperties("toolkit")
ToolkitConfigInfo toolkitConfigInfo() {
return new ToolkitConfigInfo();
}
public static class ToolkitConfigInfo {
private String hostname;
private String port;
private String clientToken;
private String encryptedKey;
ToolkitConfigInfo 的所有属性都在“application.properties”中定义,我可以阅读它们。 所以我的“GISToolConfiguration.ToolkitConfigInfo toolkitConfiguration”永远不会被实例化。我是 Spring Boot 的新手,对我来说,依赖库中的 Bean 似乎由于某种原因没有被实例化。可能是什么问题?
您正在用 new
实例化您的 toolkitApi
:
ToolkitApi toolkitApi = new ToolkitApi();
Spring DI 无法注入toolkitConfiguration
。让 Spring 将 toolkitApi
注入到你使用它的地方。