如何在Spring Boot

时间:2015-04-29 11:58:23

标签: java spring spring-mvc spring-boot spring-social

简而言之

我需要更改弹簧启动的自动配置中定义的bean的属性值,这不能从application.properties配置

描述

我想更改bean signUpUrl的{​​{1}}。根据文档,这在属性文件中无法更改。

http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

所以我做了这样的事情。

ProviderSignInController

并最终出现以下错误

@Configuration
public class SomeConfig {

    @Autowired
    public void configureProviderSignInController(ProviderSignInController signInController){
        signInController.setSignUpUrl("/register");
    }

但根据自动配置,这个bean应该可用

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/social/SocialWebAutoConfiguration.java

如果我做错了,请帮助并帮助我。

1 个答案:

答案 0 :(得分:2)

该错误描述的问题是您没有在Run -> Run Configurations -> Maven Install的方法签名中实例化类型为ProviderSignInController的bean。相反,您需要在一个配置中使用控制器所需的正确构造函数签名来实例化和配置控制器:

configureProviderSignInController

或者,如果您使用的是XML配置:

@Configuration
@EnableSocial
public class SocialConfig implements SocialConfigurer {

    ...

    @Bean
    public ProviderSignInController providerSignInController(
                ConnectionFactoryLocator connectionFactoryLocator,
                UsersConnectionRepository usersConnectionRepository) {
        ProviderSignInController controller = new ProviderSignInController(
            connectionFactoryLocator, usersConnectionRepository,
            new SimpleSignInAdapter());
        controller.setSignUpUrl("/register");
        return controller;
    }

}

有关详细信息,请参阅Spring Social docs on enabling provider sign in