Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring:通过构造函数注入静态成员(System.in)_Java_Spring_Dependency Injection_Constructor Injection - Fatal编程技术网

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" />