关于spring中没法将service注入到servlet中的问题

 首先,servlet是动态网页项目区别于普通的java项目的,是动态网页项目中web.xml主要配置文件管理的,
而spring只能管理普通的pojo,而没办法直接注入,尽管你的注入方式和配置方式都没有问题。
那如何解决这个问题呢?解决的办法总比遇到的问题多,否则spring MVC又是如何作到呢?其实filter也是会遇到相似问题的。
我的建议使用第四种方式
  第一种解决办法是:

  在servlet中的init方法或者是无参构造方法内直接用最原始的方式进行手动注入,即相似以下:
WebApplicationContext wactx = WebApplicationConteextUtils.getWebApplicationContext(request.getServletContext);
xxxService接口 = wactx.getBean(XxxService接口.class); 
除了能够用WebApplicationContext获取以外,用ClassPathXmlApplicationContext来获取也是能够的。java

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplication("配置文件路径字符串");web

xxxService接口 = ctx.getBean("id的字符串",XxxService接口.class); 
这样两种方法能够减小该Service接口的set方法。

  第二种解决办法是:

  用本身手写一个关于用包名和类名直接反射成一个类,再以对象的方式返回来解决,这样也能够不用写相应service的set方法,可是这样的
造轮子是不必的。spring

  第三种解决办法是:

  新写一个servlet,并且能够实现给一个完整类名就能够反射出一个对象的,而后在其余各个servlet中均可以用继承的方式来造各类想要的类,可是
这样仍是要写各类set方法。xml

  第四种解决办法是:

  这个时候直接用spring MVC吧,无论是配置仍是用注解,都是比较方便的,并且spring MVC的开发方式也是对你的开发效率提高有很大优点的。对象

相关文章
相关标签/搜索