各位高手们,小弟遇到一个问题请大家解决一下,先谢谢了
因为是银行项目,出于安全考虑,我把传统的ssh拆开了
b/s服务器端:只有jsp+struts+socket
中间业务平台:ServerSocket+hibernate+spring
传输和返回的数据都是加密的xml字符串
现在的问题是,我在写中间业务平台时
中间业务平台tomcat启动没错,但是我建了一个client类模拟发送xml加密字符串
java socket实现
System.out.println("服务器端接收到加密字符串: "+xmlStr);
DealStr dealStr = new DealStr();
xmlStr = dealStr.decodeStr(xmlStr);
System.out.println("服务器端接收到加密字符串>>解密: "+xmlStr);
System.out.println("-----------------业务操作开始------------------------");
// -----------------业务操作开始------------------------
if (xmlStr.contains("<action>ZhxxAction</action>")) {
System.out.println("2>>query查询操作");
ZhxxActionDB zhxxActionDB = new ZhxxActionDB();
replyStr = zhxxActionDB.execute(xmlStr);
} else {
replyStr = "Server reply: Please send it again!";
}
我在 new ZhxxActionDB()时,ZhxxActionDB()是个类,它是通过spring注入的
datasoure注入到dao,dao再注入到service中,ZhxxActionDB读取service
结果datasoure注入不进去
我想请问一下,是不是通过new的方式就注入不进去,而且new的这个类,不是继承的struts的action,
或说httpServlet
就注入不进去,请问我应该怎么改啊?
因为是SocketServer中的线程,run方法里面,所以我只能通过new就引用啊。
我的QQ:278757172 在线等啊!
详细如下:

解决方案 »

  1.   

    因为不是被spring“new”的,
    所以在spring配置文件中配置的注入(和各种依赖关系)是不管用的,
    (相应你用getXXX取的时候应该也是null)所以lz看看spring的文档,
    用别的方法取那个实例应该就可以了。
    手头没有资料,不过大概应该是下面的形式。
    ZhxxActionDB a = (ZhxxActionDB)XXX.getBean("beanName");
    那个XXX是得到的spring的用于取bean的一个...东西(没资料,不好形容,见谅见谅)good luck
      

  2.   

    配置spring的xml文件。另外说句题外话,看了Ejb3.0,我觉得还是这个简单:)
      

  3.   

    通过spring注入的 
    datasoure注入到dao,dao再注入到service中,ZhxxActionDB读取service 
    结果datasoure注入不进去 ?
    这里明显错误
    改为:
    ZhxxActionDB注入service 。