Java 带插座参数的构造器自动接线
我的主代码Java 带插座参数的构造器自动接线,java,spring,dependency-injection,inversion-of-control,autowired,Java,Spring,Dependency Injection,Inversion Of Control,Autowired,我的主代码 public static void main(String[] args) { System.out.println("Hello World!"); ApplicationContext applicationContext = new ClassPathXmlApplicationContext( "DataSource.xml"); App app = applicationContext.getBean(App.class);
public static void main(String[] args) {
System.out.println("Hello World!");
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"DataSource.xml");
App app = applicationContext.getBean(App.class);
app.start();
}
还有我的启动方法
public void start() {
try {
ServerSocket mobCom = new ServerSocket(9846);
ExecutorService executorService = Executors.newCachedThreadPool();
while (true) {
Socket socket = mobCom.accept();
PortService portService = new PortService(socket);
executorService.submit(portService);
}
} catch (IOException e) {
e.printStackTrace();
}
}
但是我希望PortService对象是从Spring创建的,而不是直接创建的,因为它有用于通信的db类。我该怎么做。我过去就是这样做的- 为您的PortService实现一个工厂类
@Service
public class PortServiceFactory {
private SomeObject someObject;
@Autowired
public PortServiceFactory(SomeObject someObject) {
this.someObject = someObject;
}
public PortService getPortService(Socket socket) {
return new PortService(someObject, socket);
}
}
在具有start()方法的类中自动关联此工厂
替换
PortService portService = new PortService(socket);
与
PortService portService = portServiceFactory.getPortService(socket);