package com.naveen.entity;
import org.springframework.context.annotation.Bean;
public class PasswordEncoder {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
public String encode(String passWord) {
// TODO Auto-generated method stub
return null;
}
}
< /code>
Затем я создал класс bcryptpasswordencoder < /code>, как ниже, < /li>
< /ol>
package com.naveen.entity;
import org.springframework.stereotype.Component;
@Component
public class BCryptPasswordEncoder extends PasswordEncoder {
}
Тогда я автоматически создал свой контроллер класс и добавил функцию шифрования в my saveUser () как ниже
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]
[*]Service
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void saveUser(User user) {
userMapper.saveUser(user);
}
}
< /code>
Когда я запускаю код, я получил ошибку ниже: < /p>
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>
Затем я создал класс bcryptpasswordencoder < /code>, как ниже, < /li> < /ol> package com.naveen.entity; import org.springframework.stereotype.Component;
@Component public class BCryptPasswordEncoder extends PasswordEncoder {
}
[/code]
Тогда я автоматически создал свой контроллер класс и добавил функцию шифрования в my 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] [*]Service[/code] класс следующим образом, [/list] [code]@Service public class UserServiceImpl implements UserService {
@Autowired private UserMapper userMapper;
@Override public void saveUser(User user) { userMapper.saveUser(user); }
} < /code> Когда я запускаю код, я получил ошибку ниже: < /p> 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] Пожалуйста, помогите мне решить, где я ошибся.