代码之家  ›  专栏  ›  技术社区  ›  Chloe

如何在SpringBoot中创建JDBCtokenstore?

  •  0
  • Chloe  · 技术社区  · 6 年前

    我尝试按照这个答案将JDBC令牌存储添加到我的应用程序中。

    https://stackoverflow.com/a/37595818/148844

    它与 InMemoryTokenStore . 我需要知道把这个代码放在哪里

    @Bean(name = "OAuth")
    @ConfigurationProperties(prefix="datasource.oauth")
    public DataSource secondaryDataSource() {
        return DataSourceBuilder.create().build();
    }
    

    我试着把它放进去

    @Configuration
    @EnableAuthorizationServer
    public class OAuth2Configuration extends AuthorizationServerConfigurerAdapter {
    

    但我搞错了

    原因:org.springframework.beans.factory.beanCreationException:创建名为“oauth2configuration”的bean时出错:注入资源依赖项失败;嵌套异常为org.springframework.beans.factory.beanCurrentlyIncreationException:创建名为“oauth”的bean时出错:请求的bean当前正在创建中:是否存在未恢复的可解圆参考?

    所以我把它搬到了主班

    @SpringBootApplication
    @MapperScan("com.example.mapper")
    public class ExampleApplication extends SpringBootServletInitializer {
    

    但后来它给出了一个不同的错误

    原因:org.springframework.jdbc.cannotgetjdbconnectionexception:无法获取JDBC连接;嵌套异常为java.sql.sql exception:URL不能为空

    那么我应该把这个片段放在哪里来定义bean呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   NiVeR    6 年前

    您需要在 application-{profile}.properties ,尤其需要在它们前面加上前缀 datasource.oauth . 在这里 profile 将是应用程序正在运行的任何配置文件(例如:dev、stage、prod)。

    显示的错误清楚地表明没有 datasource.oauth.url=.. 特定属性文件中的属性。