为了账号安全,请及时绑定邮箱和手机立即绑定

带有 OAuth2 的 Spring Boot 2 - 无法创建 bean entity

带有 OAuth2 的 Spring Boot 2 - 无法创建 bean entity

蛊毒传说 2021-07-22 18:01:16
我正在尝试使用 Spring Boot 2 创建 OAuth2 授权服务器。但是,每当我尝试启动我的应用程序时,我都会收到一个错误:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2018-08-17 08:17:53.946 ERROR 38996 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed从堆栈跟踪来看,问题的根源似乎在于创建entityManagerFactorybean。但是,我无法弄清楚为什么这会成为一个问题。问题始于我的 AppConfig,它引用了在我的 AuthServerConfig 中找到的JwtAccessTokenConverter: @Configurationpublic class AppConfig {    @Value("${spring.datasource.url}")    private String datasourceUrl;    @Value("${spring.datasource.driverClassName}")    private String dbDriverClassName;    @Value("${spring.datasource.username}")    private String dbUsername;    @Value("${spring.datasource.password}")    private String dbPassword;    @Autowired    JwtAccessTokenConverter accessTokenConverter;    @Bean    public PasswordEncoder passwordEncoder() {        return new BCryptPasswordEncoder();    }    @Bean    public ModelMapper modelMapper() {        ModelMapper mapper = new ModelMapper();        return mapper;    }    @Bean    public DataSource dataSource() {        final DriverManagerDataSource dataSource = new DriverManagerDataSource();        dataSource.setDriverClassName(dbDriverClassName);        dataSource.setUrl(datasourceUrl);        dataSource.setUsername(dbUsername);        dataSource.setPassword(dbPassword);        return dataSource;    }    @Bean    public TokenStore tokenStore() {        return new JwtTokenStore(accessTokenConverter);    }}
查看完整描述

2 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

将 移动DataSource到仅包含DataSourcebean 和环境值的单独配置文件中。我相信你在某处有一个循环依赖JwtAccessTokenConverter。


当我遵循可能相同的教程时,我遇到了类似的问题。


@Configuration

public class DataSourceConfig {


    @Value("${spring.datasource.url}")

    private String datasourceUrl;


    @Value("${spring.datasource.driverClassName}")

    private String dbDriverClassName;


    @Value("${spring.datasource.username}")

    private String dbUsername;


    @Value("${spring.datasource.password}")

    private String dbPassword;



    @Bean

    public DataSource dataSource() {

        final DriverManagerDataSource dataSource = new DriverManagerDataSource();


        dataSource.setDriverClassName(dbDriverClassName);

        dataSource.setUrl(datasourceUrl);

        dataSource.setUsername(dbUsername);

        dataSource.setPassword(dbPassword);


        return dataSource;

    } 


}


查看完整回答
反对 回复 2021-07-29
  • 2 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信