Spring Boot ConflictingBeanDefinitionException: Annotation-specified bean name for @Controller class

后端 未结 6 1913
南旧
南旧 2021-02-18 13:50

I keep getting the ConflictingBeanDefinitionException error in my Spring boot application. I am not entirely sure as to how to address it, I have several @Con

6条回答
  •  盖世英雄少女心
    2021-02-18 14:40

    I was having the same problem with a generated .war file from spring-boot. the approved solution (Timothy Tuti's own solution) didn't quite work for me exactly as-is, but I tweaked it a little bit and it worked. I just added the following line to my Application.java:

    @ComponentScan(basePackages = { "com.mypackage" })

    For reference, here goes my full Application.java

    package com.inmoment.devchallenge;
    import org.neo4j.graphdb.GraphDatabaseService;
    import org.neo4j.graphdb.factory.GraphDatabaseFactory;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.context.web.SpringBootServletInitializer;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.neo4j.config.EnableNeo4jRepositories;
    import org.springframework.data.neo4j.config.Neo4jConfiguration;
    
    @SpringBootApplication
    @Configuration
    @ComponentScan(basePackages = { "com.inmoment.devchallenge.controller" })
    @EnableAutoConfiguration
    public class Application extends SpringBootServletInitializer {
    
        @Configuration
        @EnableNeo4jRepositories(basePackages = "com.inmoment.devchallenge.repository")
        static class ApplicationConfig extends Neo4jConfiguration {
    
            public ApplicationConfig() {
                setBasePackage("com.inmoment.devchallenge.repository");
            }
    
            @Bean
            GraphDatabaseService graphDatabaseService() {
                return new GraphDatabaseFactory().newEmbeddedDatabase("accessingdataneo4j.db");
            }
        }
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(Application.class, args);
        }
    
    }
    

提交回复
热议问题