我对后端还比较陌生。我的 VS Code 在 16:05 处没有显示类似本教程的建议,我该如何设置才能获得建议。
主页
/
user-19547576
corneliusstone's questions
corneliusstone
Asked:
2024-10-06 16:06:53 +0800 CST
我是 springboot 新手,我深入研究了一个项目。我有一个 UserService 和一个 UserService java 文件。我需要使用扩展的 UserDetailsService,但我不知道在哪里扩展它?
用例:在单独的 JWTAUTHFILTER Java 文件中检索用户名
if(userEmail != null && SecurityContextHolder.getContext().getAuthentication() == null){
UserDetails userDetails = userService.findByUsername(userEmail);
}
我的UserService.java
public interface UserService {
UserDto createUser(UserDto user);
}
我的 Impl 课程:
@Service
public class UserImpl implements UserService {
private final UserRepository userRepository;
private PasswordEncoder passwordEncoder;
@Autowired
public UserImpl(final UserRepository userRepository){
this.userRepository = userRepository;
}
@Override
public UserDto createUser(UserDto user) {
user.setPassword(passwordEncoder.encode(user.getPassword()));
UserEntity userEntity = userToUserEntity(user);
userRepository.save(userEntity);
return user;
}
@Override
public Optional<UserDto> findByUsername(String username) {
Optional<UserEntity> userName = userRepository.findByUsername(username);
return userName.map(user -> userEntityToUserModel(user));
}
private UserEntity userToUserEntity(final UserDto user){
// UserEntity userEntity = new UserEntity();
// userEntity.setUsername(user.getUsername());
// userEntity.setId(user.getId());
// userEntity.setPassword(user.getPassword());
// userEntity.setRole(user.getRole());
return UserEntity.builder()
.id(user.getId())
.username(user.getUsername())
.role(user.getRole())
.password(user.getPassword())
.build();
}
private UserDto userEntityToUserModel (final UserEntity userEntity){
return UserDto.builder()
.id(userEntity.getId())
.password(userEntity.getPassword())
.role(userEntity.getRole())
.username(userEntity.getUsername())
.build();
}
}
我很困惑,我正在使用的教程没有使用 DTO 和分离的服务和服务实现,有人可以帮帮我吗?