【发布时间】:2018-11-23 19:08:00
【问题描述】:
所以我使用 Spring 来访问我的数据库并根据不同的属性获取用户。使用@Restcontroller,我得到了数据。我创建了一个扩展 CrudRepository 的 UserRepository。
import org.springframework.data.repository.CrudRepository;
public interface UserRepository extends CrudRepository<User, Integer> {
Iterable<User> findByNachname(String nachname);
Iterable<User> findByRolle(Rolle rolle);
Optional<User> findByBenutzername(String benutzername);
@Transactional
String deleteByBenutzername(String benutzername);
}
我使用@Autowire 在我的控制器类中获取 UserRepo 的实例
@RestController
public class LoginController {
@Autowired
private UserRepository userRepository;
}
这在我拥有的所有控制器中都可以正常工作。 但是现在当我在另一个类中尝试相同的操作时,userRepository 实例为空。
public class Authentificator {
@Autowired
private UserRepository userRepository;
}
Authentificator 和 LoginController 不在同一个包中。但是它们都与 UserRepo 不在同一个包中。
- 项目
- UserRepo 包
- 控制器包
- 验证器包
【问题讨论】:
-
看来 Authentificator 不是 Spring bean。是吗?你如何获得它的实例? Spring 仅自动装配 Spring bean 中的依赖项,这些依赖项必须由 Spring 创建。
标签: java spring spring-repositories