public class UserController {
@Autowired
PasswordEncoder passwordEncoder;
@PostMapping("/saveUser")
public int saveUser(@RequestBody User user) throws Exception {
String encryptedPassword =passwordEncoder.encode(user.getPassWord());
user.setPassWord(encryptedPassword);
userService.saveUser(user);
System.out.println("Inserted data with id: "+ user.getId());
return 1;
}
}
Field passwordEncoder in com.naveen.controller.UserController required a bean of type 'com.naveen.entity.PasswordEncoder' 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.naveen.entity.PasswordEncoder' in your configuration.
@Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); }
public String encode(String passWord) { // TODO Auto-generated method stub return null; }
} [/code] [list] [*]Затем я создал класс BCryptPasswordEncoder, как показано ниже: [/list] [code]package com.naveen.entity; import org.springframework.stereotype.Component;
@Component public class BCryptPasswordEncoder extends PasswordEncoder {
}
[/code] [list] [*]Затем я автоматически подключил свой класс Controller и добавил функцию шифрования в свой saveUser(), как показано ниже [/list] [code]public class UserController {
@Autowired PasswordEncoder passwordEncoder;
@PostMapping("/saveUser") public int saveUser(@RequestBody User user) throws Exception { String encryptedPassword =passwordEncoder.encode(user.getPassWord()); user.setPassWord(encryptedPassword); userService.saveUser(user); System.out.println("Inserted data with id: "+ user.getId()); return 1; }
} [/code] [list] [*][code]Service[/code] следующим образом: [/list] [code]@Service public class UserServiceImpl implements UserService {
@Autowired private UserMapper userMapper;
@Override public void saveUser(User user) { userMapper.saveUser(user); }
} [/code] Когда я запустил код, я получил следующую ошибку: [code]Field passwordEncoder in com.naveen.controller.UserController required a bean of type 'com.naveen.entity.PasswordEncoder' 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.naveen.entity.PasswordEncoder' in your configuration. [/code] Пожалуйста, помогите мне понять, где я ошибся.