Java 考虑定义一个类型的豆和*x27;sessionmanager.repositories.SessionRepository';在您的配置中

Java 考虑定义一个类型的豆和*x27;sessionmanager.repositories.SessionRepository';在您的配置中,java,spring,spring-boot,spring-data-redis,spring-repositories,Java,Spring,Spring Boot,Spring Data Redis,Spring Repositories,我目前正在用Redis试用Spring boot应用程序。当我尝试执行该程序时,我遇到了一个与Spring boot有关的问题,涉及Redis存储库 当我运行应用程序时,出现以下错误: 2017-09-02 09:21:37.065 INFO 5130 --- [st-startStop-18] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 2017-09-0

我目前正在用Redis试用Spring boot应用程序。当我尝试执行该程序时,我遇到了一个与Spring boot有关的问题,涉及Redis存储库

当我运行应用程序时,出现以下错误:

2017-09-02 09:21:37.065  INFO 5130 --- [st-startStop-18] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2017-09-02 09:21:37.106  WARN 5130 --- [st-startStop-18] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'controller': Unsatisfied dependency expressed through method 'setSessionService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sessionServiceImpl' defined in file [/rezsystem/apache-tomcat-8.0.36/webapps/sessionmanager/WEB-INF/classes/rezg/rezos/sessionmanager/services/SessionServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'mezg.mezos.sessionmanager.repositories.SessionRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
2017-09-02 09:21:37.118  INFO 5130 --- [st-startStop-18] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-09-02 09:21:37.306 ERROR 5130 --- [st-startStop-18] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

**Description:**
Parameter 0 of constructor in mezg.mezos.sessionmanager.services.SessionServiceImpl required a bean of type 'mezg.mezos.sessionmanager.repositories.SessionRepository' that could not be found.

**Action:**
Consider defining a bean of type 'mezg.mezos.sessionmanager.repositories.SessionRepository' in your configuration.
下面列出了相关的源文件

服务接口

package mezg.mezos.sessionmanager.services;

import java.util.List;

public interface SessionService {

    List<String> listAll();

    String getById(String Key);
}
主类

package mezg.mezos.sessionmanager;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("mezg.mezos.sessionmanager")
public class SessionStoreApplication {

    public static void main(String[] args) {
        SpringApplication.run(SessionStoreApplication.class, args);
    }
渐变依赖关系

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-redis')
    compile('org.springframework.boot:spring-boot-starter-web')
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
package mezg.mezos.sessionmanager;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan({"mezg.mezos.sessionmanager","mezg.mezos.sessionmanager.controller","mezg.mezos.sessionmanager.services","mezg.mezos.sessionmanager.repositories"})
@EnableRedisRepositories("mezg.mezos.sessionmanager.repositories")
public class SessionStoreApplication {

    public static void main(String[] args) {
        SpringApplication.run(SessionStoreApplication.class, args);
    }
}
在这个论坛上描述了类似的场景,我尝试了建议的解决方案,但可以解决这个问题。下面列出了其中一些问题

堆栈溢出引用

其他参考资料

package mezg.mezos.sessionmanager;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("mezg.mezos.sessionmanager")
public class SessionStoreApplication {

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

------------------------更新1-----------------------

尝试使用@ComponentScan@EnableRedisRepositories更新主类

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-redis')
    compile('org.springframework.boot:spring-boot-starter-web')
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
package mezg.mezos.sessionmanager;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan({"mezg.mezos.sessionmanager","mezg.mezos.sessionmanager.controller","mezg.mezos.sessionmanager.services","mezg.mezos.sessionmanager.repositories"})
@EnableRedisRepositories("mezg.mezos.sessionmanager.repositories")
public class SessionStoreApplication {

    public static void main(String[] args) {
        SpringApplication.run(SessionStoreApplication.class, args);
    }
}
------------------------更新2-----------------------

完整日志

package mezg.mezos.sessionmanager;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("mezg.mezos.sessionmanager")
public class SessionStoreApplication {

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


关于如何修复此Spring引导错误的任何建议,以及在这种情况下应遵循的最佳实践?

您找到什么了吗,现在快到明年了。