【发布时间】:2021-09-02 17:21:15
【问题描述】:
我只是在“保存”函数中一遍又一遍地得到一个错误,它说: “直接调用带有@Bean注解的方法。改用依赖注入。” 调用“passwordEncoder()”时
在这一行
user.setPassword(passwordEncoder().encode(user.getPassword()));
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
public void save(User user){
user.setPassword(passwordEncoder().encode(user.getPassword()));
userRepository.save(user);
}
public User getUser(String username){
return userRepository.findByUsername(username);
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
}
我在 spring 逻辑中遗漏了什么,它不起作用?
顺便说一句 - 紧随其后:https://www.youtube.com/watch?v=IOgCMtYMr2Q&t=1s&ab_channel=RocketMan
【问题讨论】:
-
检查this
-
非
@Configuration类中的@Bean方法不像@Configuration类中那样被代理/处理。将该方法移到您的安全配置中,然后注入 bean。
标签: java spring spring-boot