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 注入到你使用它的地方。