大多数关于Spring Boot的例子我发现重点关注构建简单的Web应用程序。也就是说,你完全掌控一切的网络应用程序。如何在Spring中使用注释自动装载第三方类?
另一方面,我没有找到有关如何构建非Web应用程序的例子,其中应用程序的大部分依赖于第三方代码。
请考虑我的com.mypackage.Application
类以下。
package com.mypackage;
import com.3rdparty.factory.ServiceFactory;
public class Application {
private final ServiceFactory sf;
public Application(ServiceFactory sf) {
this.sf = sf;
}
public void doSomeWork() {
ServiceA sa = sf.getServiceA();
[...]
}
Application
的类简单地实例化DefaultManager
并调用run()
。
现在,第三方ServiceFactory
类有额外的依赖:
package com.3rdparty.factory;
import com.3rdparty.service.ServiceA;
import com.3rdparty.service.ServiceA;
public class ServiceFactory {
private final ServiceA sa;
private final ServiceB sb;
public ServiceFactory(ServiceA sa, ServiceB sb) {
this.sa = sa;
this.sb = sb;
}
public ServiceA getServiceA() {
return sa;
}
public ServiceB getServiceB() {
return sb;
}
}
我可以从Main
类推出Application
:
import com.mypackage.Application;
public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
Application app = (Application) context.getBean("app");
app.doSomeWork();
}
问题:我怎么注入ServiceA
和ServiceB
成ServiceFactory
。这是第三方课程,我无法控制它,我无法修改它。因此,我无法添加任何注释。
我可以很容易地得到这个与XML配置工作,但考虑到注释似乎是这样做的“最佳做法”方式,我想知道如何才能使它与注释一起工作。
如果执行此操作的注释方式涉及大量代码,那么我想知道与XML配置相比,这给我带来的好处,我认为这很容易理解;以及在不同项目中轻松实现的模式。