@Configuration
public class AppConfig {
@Autowired
@Lazy
UserService userService;
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder(5);
}
@Autowired
protected void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService).passwordEncoder(bCryptPasswordEncoder());
}
}
@Configuration - это не бин, не сервис. Не надо туда ничего аутовайрить.
@Autowired
protected void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService).passwordEncoder(bCryptPasswordEncoder());
}
- тут вообще какая-то аброкадабра. Что в конфиге делает void? Почему он бросает эксепшн?
Если вам нужно какие-то действия произвести после постройки бина, подумайте насчет аннотации @PostConstruct
Можно попробовать, например, в UserService добавить:
...
@Autowired
AuthenticationManagerBuilder auth;
@PostConstruct
void init() {
auth.userDetailsService(this).passwordEncoder(bCryptPasswordEncoder);
}
...