0

我正在尝试使用 JAVA DSL 开发与骆驼的集成应用程序,但是当我尝试自动连接我的连接助手时,我得到一个空值

这是代码:

import com.example.helperproject.ConnectionHelper;

@Singleton
@Startup
@ComponentScan(basePackages = {"com.example.helperproject"})
public class Bootstrap {

    @Autowired
    private ConnectionHelper connectionHelper;



    @PostConstruct
    public void init() throws Exception {

        try {
            System.out.println("Init process begin in singleton bootstrap");

            System.out.println(connectionHelper); 
            }

当我们在使用 JAVA DSL 时尝试在 spring 的帮助下自动装配时,connectionHelper 会打印一个空值。帮助我完成任何示例项目以及如何进一步进行?

添加 ConnectionHelper :

package com.example.helperproject;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * ConnectionHelper to establish connection to Database
 * 
 *
 */
@Component
public class ConnectionHelper {

    @Autowired
    private PropertyHelper propertyHelper;

    /**
     * Method for getting host
     * 
     * @return host variable for connection
     */
    private String getHost() {
        String host = propertyHelper.getPropertyByName("host") == null ? "localhost"
                : propertyHelper.getPropertyByName("host");
        return host;

    }


    public void insertXMLDocument() {
        System.out.println("Test Insert");
        System.out.println("------------------>HOST :" + this.getHost());
    }
}
4

1 回答 1

0

您应该尝试在 Bootstrap 类上添加 @Configuration 注释。

ComponentScan 注解由 ConfigurationClassParser 调用的 ComponentScanAnnotationParser 解析。这仅扫描带有 @Configuration 注释的类。本质上,您的 componentScan 在您的代码中不起作用。

该文档还建议将@ComponentScan 与@Configuration 一起使用

http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/ComponentScan.html

编辑 1:您可以尝试将组件扫描放入 XML 中,看看它是否有效。

于 2017-02-01T14:15:47.640 回答