尝试创建Service类时出现NullPointer错误

时间:2019-08-06 18:30:50

标签: java spring spring-boot

因此,在我决定最好有一个Service类来完成所有逻辑工作之前,我的应用程序没有任何问题。当我复制最初使用的完全相同的代码时,我得到NullPointer错误。

这就是我所拥有的,并且效果很好:

User user = userRepository.findById(id).get();

这是我在Service班上所拥有的:

public User findUserById(Integer id)
    {
        User user = userRepository.findById(id).get();
        return user;
    }

这就是我所说的:

private UserService userService = new UserService();
User user = userService.findUserById(id);

1 个答案:

答案 0 :(得分:1)

如果您要呼叫new UserService(),则它不是Spring bean,也不会自动连接。

有多种方法create a Spring bean

  1. @Service注释您的课程,并确保它是应用程序组件扫描的一部分。另外,请确保存储库字段用@Autowired注释,或者确保您的服务类具有一个接受存储库作为参数的构造函数。
    @Service
    public class UserService {

        @Autowired
        private UserRepository userRepository;
    } 
  1. 创建一个用@Configuration注释的类,然后添加一个@Bean方法来返回服务的新实例:
    @Configuration
    public class UserServiceConfig {

        @Bean
        public UserService userService(UserRepository userRepository) {
            return new UserService(userRepository); // could also use a setter instead
        }
    }