2016-12-21 73 views
0

我想togglz添加到我的衝刺啓動應用程序,但是在啓動時,我得到以下錯誤:春季啓動Togglz - 型UserProvider錯誤的沒有合格豆

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

我的設置建議如下:

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); 
      } 
     }; 

    } 
} 

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); 
     } 
    } 

與我的應用程序屬性文件包含以下內容:

togglz: 
    enabled: true 
    feature-enums: com.togglz.Features 
    FEATURE_ONE: true 
    FEATURE_TWO: false 

有其他人遇到這個問題,或者有任何想法如何解決呢?我希望我的getUserProvider()可以處理東西,但可能不會......

回答

0

看起來像是Spring Boot版本的升級沒有訣竅...