Java Spring:通过构造函数注入静态成员(System.in)
我为一个简单的应用程序编写了一些控制台客户端。 为了更加灵活,我认为最好只依赖Java Spring:通过构造函数注入静态成员(System.in),java,spring,dependency-injection,constructor-injection,Java,Spring,Dependency Injection,Constructor Injection,我为一个简单的应用程序编写了一些控制台客户端。 为了更加灵活,我认为最好只依赖java.io.Input-/OutputStream,而不是直接访问System.in/out 我将类ConsoleClient重命名为StreamClient,添加了setter,并确保使用实例字段而不是System.in/out 目前,我的客户端代码如下所示: ApplicationContext appCtx = new ClassPathXmlApplicationContext("..."); Stream
java.io.Input-/OutputStream
,而不是直接访问System.in/out
我将类ConsoleClient
重命名为StreamClient
,添加了setter,并确保使用实例字段而不是System.in/out
目前,我的客户端代码如下所示:
ApplicationContext appCtx = new ClassPathXmlApplicationContext("...");
StreamClient cc = (StreamClient) appCtx.getBean("streamClient");
cc.setInputStream(System.in);
cc.setOutputStream(System.out);
cc.run(); // start client
问题:
是否有办法将管路3和4移动到弹簧配置中(最好是注射)
谢谢您的时间。我不确定您是否可以使用
System.out
显式创建bean(我想这就是您要问的)。但是,您可以创建一个使用工厂类/方法返回对象的bean(在本例中为System.out
)
使用
:
有关此主题的更多信息:
<bean id="streamOut" class="examples.StreamFactory"
factory-method="getSystemOut"/>
<util:constant id = "out" static-field="java.lang.System.out" />