我为一个简单的应用程序编写了某种控制台客户端。
为了更加灵活,我认为仅依靠java.io.Input-/OutputStream
而不是直接访问System.in/out
会很好。
我将课程ConsoleClient
重命名为StreamClient
,添加了设置工具,并确保使用实例字段代替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行移动到Spring配置中(最好是构造函数注入)?
感谢您的时间。
答案 0 :(得分:5)
使用<util:constant ... />
:
<util:constant id = "out" static-field="java.lang.System.out" />
答案 1 :(得分:0)
我不确定您是否可以使用System.out
显式创建bean(我认为这就是您所要求的)。但是,您可以创建一个使用工厂类/方法返回对象的bean(在本例中为System.out
)
<bean id="streamOut" class="examples.StreamFactory"
factory-method="getSystemOut"/>