Consider defining a bean of type 'com.security.Registration.repositories.UserRepo' in your configuration
Field userRepo in com.security.Registration.controller.RegistrationController required a bean of type 'com.security.Registration.repositories.UserRepo' that could not be found. Action: Consider defining a bean of type 'com.security.Registration.repositories.UserRepo' in your configuration.
Пытаюсь запустить регистрацию на Spring а у меня почему то у public UserRepo userRepo в коннтроллере не находит бин. Подскажите в чем причина этого безобразия?)
RegistrationController
@Controller
@RequestMapping("/registration")
public class RegistrationController {
@Autowired
public PasswordEncoder passwordEncoder;
@Autowired
public UserRepo userRepo;
@GetMapping
public String registration(){
return "registration";
}
@PostMapping
public String processRegistration(RegistrationForm registrationForm){
userRepo.save(registrationForm.toUser(passwordEncoder));
return "redirect:/login";
}
}
RegistrationForm
@Data
public class RegistrationForm {
private String login;
private String passwordUser;
public User toUser(PasswordEncoder passwordEncoder){
User user = new User();
user.setLogin(login);
user.setPassword(passwordEncoder.encode(passwordUser));
user.setRoles(Collections.singleton(Role.USER));
return user;
}
}
WebSecurityConfig
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableJpaRepositories(basePackages = {"com.security.Registration.repositories"})
@EnableTransactionManagement
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
// шифрование пароля
@Bean
public static PasswordEncoder encoder(){
return new BCryptPasswordEncoder(10);
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(encoder() );
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/","/home","/login","/registration").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login").defaultSuccessUrl("/").and()
.logout().logoutUrl("/logout").logoutSuccessUrl("/").permitAll();
}
UserRepo
@NoRepositoryBean
@Repository
public interface UserRepo extends CrudRepository<User,Long> {
User findByUsername(String name);
}
вот что в логах пишет
Field userRepo in com.security.Registration.controller.RegistrationController required a bean of
type 'com.security.Registration.repositories.UserRepo' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.security.Registration.repositories.UserRepo' in your
configuration.
Process finished with exit code 1