首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot Togglz -没有类型为UserProvider错误的合格bean

Spring Boot Togglz -没有类型为UserProvider错误的合格bean
EN

Stack Overflow用户
提问于 2016-12-21 20:57:52
回答 2查看 2.1K关注 0票数 1

我正在尝试将togglz添加到我的sprint启动应用程序中,但是在启动时我得到了以下错误:

代码语言:javascript
复制
2016-12-21 12:41:34.482 ERROR 43583 --- [ost-startStop-1] o.s.b.c.embedded.tomcat.TomcatStarter    : Error starting Tomcat context: org.springframework.beans.factory.UnsatisfiedDependencyException
2016-12-21 12:41:34.530  WARN 43583 --- [  restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.togglz.core.user.UserProvider] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1072) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:967) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    ... 138 common frames omitted
Wrapped by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'featureManager' defined in class path resource [org/togglz/spring/boot/autoconfigure/TogglzAutoConfiguration$FeatureManagerConfiguration.class]: Unsatisfied dependency expressed through constructor argument with index 2 of type [org.togglz.core.user.UserProvider]: : No qualifying bean of type [org.togglz.core.user.UserProvider] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.togglz.core.user.UserProvider] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

似乎在配置上有问题,但是我似乎已经按照https://www.togglz.org/documentation/spring-boot-starter.html上的建议把一切都准备好了

我的设置如下:

代码语言:javascript
复制
package com.togglz;

import java.io.File;

import org.springframework.stereotype.Component;
import org.togglz.core.Feature;
import org.togglz.core.manager.TogglzConfig;
import org.togglz.core.repository.StateRepository;
import org.togglz.core.repository.file.FileBasedStateRepository;
import org.togglz.core.user.FeatureUser;
import org.togglz.core.user.SimpleFeatureUser;
import org.togglz.core.user.UserProvider;

@Component
public class TogglzConfiguration implements TogglzConfig {

    public Class<? extends Feature> getFeatureClass() {
        return Features.class;
    }

    public StateRepository getStateRepository() {
        return new FileBasedStateRepository(new File("application-local.properties"));
    }

    public UserProvider getUserProvider() {
        return new UserProvider() {
            @Override
            public FeatureUser getCurrentUser() {
                return new SimpleFeatureUser("admin", true);
            }
        };

    }
}

代码语言:javascript
复制
package com.togglz;

import org.springframework.stereotype.Component;
import org.togglz.core.Feature;
import org.togglz.core.annotation.Label;
import org.togglz.core.context.FeatureContext;


    @Component
    public enum Features implements Feature {

        @Label("Feature1")
        FEATURE_ONE,

        @Label("Feature2")
        FEATURE_TWO;

        public boolean isActive() {
            return FeatureContext.getFeatureManager().isActive(this);
        }
    }

我的应用程序属性文件包含以下内容:

代码语言:javascript
复制
togglz:
  enabled: true
  feature-enums: com.togglz.Features
    FEATURE_ONE: true
    FEATURE_TWO: false

其他人有没有经历过这个问题,或者知道如何解决它?我希望我的getUserProvider()能处理一些事情,但可能不是..

EN

回答 2

Stack Overflow用户

发布于 2018-11-06 14:30:38

你在你的函数中缺少 @Bean注解,这是一个问题。

Spring正在尝试搜索togglz配置其用户提供程序所需的userprovider bean

票数 2
EN

Stack Overflow用户

发布于 2016-12-22 00:27:42

看起来Spring Boot版本的升级成功了……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41263339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档