RestController 自动装配接口 nosuchbeanddefinition

RestController autowire interface nosuchbeandefinition

我使用 spring-boot 1.5.10 RELEASE 编写了一个应用程序。我需要自动装配我将用作 WebService 的接口。 我有配置 class:

package com.app.packA;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class StartWebApplication extends SpringBootServletInitializer {

public static void main(String[] args) {
    SpringApplication.run(StartWebApplication.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(StartWebApplication.class);
}

}

我的 RestController:

package com.app.packA;

import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

@Autowired
CalculatorWs calcService;

}

和来自另一个包的接口

package com.app.packB;

@WebService(name="CalculatorService")
public interface CalculatorWs {

public int sum();

public int multiply();
}

当我尝试在 Tomcat 7 上启动此应用程序时,我收到消息 In "GreetingController" NoSuchBeanDefinition "CalculatorWs"

您需要将包 com.app.packB 添加到您的 spring 启动应用程序。

@SpringBootApplication(scanBasePackages = "com.app")

或者您可能想要添加要扫描的特定包。

@SpringBootApplication(scanBasePackages = {"com.app.packA", "com.app.packB"})

使用@Service代替@WebService