spring - 非 Spring Boot 应用程序中的 Spring 依赖注入
问题描述
我编写了一个main
没有Spring Boot
应用程序的库,但我仍然想使用 Spring Framework 的依赖注入来加载我的类的依赖项。我希望每个人都可以使用这个库,即使是那些不会使用 Spring 的开发人员。
即使我的库的用户不会使用 Spring,我有没有办法利用 Spring Framework 的依赖注入?
目前我正在将我的库导入到我的另一个应用程序中,但我的依赖项变成了null
. 有没有办法解决这个问题?
@Component
public class Client
{
@Autowired
private ClientService clientService; // this is null
public static Client createClientWithCredentials(String clientId, String clientSecret)
{
return new Client(clientId, clientSecret);
}
private Client(String clientId, String clientSecret)
{
// ...
}
}
@Service
public class ClientService {
// ...
}
使用我的库的人会像这样使用它来实例化它。
...
// Non-Spring project
Client client = Client.createClientWithCredentials("id", "secret");
...
不幸的是,使用client
will 在某些时候抛出一个NullPointerException
since clientService
is null
。我也在以这种方式测试我的应用程序,这就是为什么我知道我有null
依赖项。
如果我的应用程序从未运行但仅用作库,我如何利用 Spring 的依赖注入?
这是可能的还是我需要使用每个类构建它自己的依赖项的旧方法?
解决方案
推荐阅读
- python-3.x - 我第一次在我的windows上下载程序python
- bash - 从 postgres 函数/过程/触发器执行 Bash 脚本(Shell 脚本)
- android - AndroidThreeTen 在没有 robolectric 的情况下无法在单元测试中工作?
- apache-kafka - 重新分区时的 Kafka Streams 线程数
- excel - VBA 测试是否存在可选变体
- excel - VBA 创建 csv 文件
- html - Microsoft Edge 中的字体连字图标
- angular - Angular RxJs 在循环数组期间升级
- python - 如何从 TensorFlow 中的函数返回张量的值?
- c++ - 如何在我的窗口中添加一些文本行?