一个简单的SPRING配置,一个简单的SERVLET,
配置好了SPRING的service等,然后给SERVLET注入一个bean,发现能注入(TOMCAT启动的时候发现能SET进去),但是调用的一直是NULL,不知道是什么原因,望高手指点.下面是相关代码。
SERVLET代码
[code=Java]
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;
}
[/code]
SPRING_APPLICATION.XML
[code=Java]
<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>
[/code]
就是这个问题,不知道为什么用的时候是NULL,同样的方法在SPRINGmvc中就不是NULL
------解决方案--------------------------------------------------------
这个问题是这样的,你在Spring的配置文件中配置的Javaservice 不是你访问页面是处理url的Javaservice。
所以你看到Spring给你的Javaservice设置了userservice,但实际访问的时候却是null了。
建议:把你的Servlet改写成Spring的Controller