我为此奋斗了几个小时,但无法确定我的设置有什么问题...

当前,在TestController中,引擎字段标记有错误


  “无法自动装配。找不到'ServerEngine'类型的bean”。


我已经尝试用@SpringBootApplication@Configuration@EnableAutoConfiguration替换@ComponentScan,但仍然收到错误。

以下是相关文件:

应用程序

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applictionContext.xml");
        SpringApplication.run(Application.class, args);
    }
}


ServerEngine.java(充当主系统的单例)

public class ServerEngine {

    @Autowired
    private DataLayer dataLayer;
    public DataLayer getDal(){
        return dataLayer;
    }

    @Autowired
    private UsersDal usersDal;
    public UsersDal getUsersDal(){
        return usersDal;
    }

}


TestController.java

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    ServerEngine engine;

    @RequestMapping(value = "/users", method = RequestMethod.POST)
    public void test(HttpServletRequest request, HttpServletResponse response){
        engine.getUsersDal().addOrUpdateUser(...);
    }
}


applictionContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="serverEngine" class="partners.dataaccess.ServerEngine"/>

    <bean id="usersDal" class="partners.dataaccess.UsersDal"/>
    <bean id="dataLayer" class="partners.dal.DataLayer">
        <constructor-arg name="username" value="..."/>
        <constructor-arg name="password" value="..."/>
        <constructor-arg name="url" value="..."/>
    </bean>
</beans>

最佳答案

main中,您要实例化ApplicationContext applicationContext,但是随后您对其不执行任何操作-您不会将其传递给SpringApplication

我对Spring Boot不熟悉,但是在您的代码中也看不到将XML配置的名称赋予SpringApplication的任何地方。因此,它可能仅使用注释配置。

最后,由于ServerEngine没有用@Service注释,因此在组件扫描期间不会将其实例化为Spring bean。

08-26 02:36
查看更多