一个简单的SPRING配置,一个简单的SERVLET,
配置好了SPRING的service等,然后给SERVLET注入一个bean,发现能注入(TOMCAT启动的时候发现能SET进去),但是调用的一直是NULL,不知道是什么原因,望高手指点.下面是相关代码。
SERVLET代码
- Java code
public class Javaservice extends HttpServlet { private UserService userservice; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.print( "f "); userservice.getaallStudent();(这一句在运行中发现是null) response.setContentType( "text/html "); PrintWriter out = response.getWriter(); } public UserService getUserservice() { System.out.println( "get------------------------------------ "); return userservice; } public void setUserservice(UserService userservice) { System.out.println( "set------------------------------------ ");(这一句在TOMCAT启动时发现正常,能注入值) this.userservice = userservice; }
SPRING_APPLICATION.XML
- Java code
<bean id= "userservice " parent= "txProxyTemplate "> <property name= "target "> <ref bean= "userserviceImpl "/> </property> <property name= "proxyInterfaces "> <value> com.sos.service.UserService </value> </property> </bean> <bean id= "userserviceImpl " class= "com.sos.service.UserServiceImpl "> <property name= "userdao "> <ref bean= "userdao "/> </property> </bean> <bean id= "userdao " class= "com.sos.hibernate.UserDAO "> <property name= "sessionFactory "> <ref bean= "sessionFactory "/> </property> </bean> <bean id= "Javaservice " class= "com.sos.action.Javaservice "> <property name= "userservice "> <ref bean= "userservice "/> </property> </bean>
就是这个问题,不知道为什么用的时候是NULL,同样的方法在SPRINGmvc中就不是NULL
------解决方案--------------------
// HttpServletRequest request;
// ServletContext servletContext = request.getSession().getServletContext();
// ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
// UserService userservice =(UserService) ctx.getBean("userservice")
我们以前是用这个获取的