Spring MVC在组件中自动连接空
我的组成部分是:Spring MVC在组件中自动连接空,spring,spring-mvc,autowired,Spring,Spring Mvc,Autowired,我的组成部分是: package com.netpc.recruitment.models.user; @Component public class UserAuth { @Autowired private HttpSession httpSession; @Autowired private IUserDAO userDAO; } 在控制器中创建对象时,VarshttpSession和userDAO为nulluserDAO配置正确,在mycom.netp
package com.netpc.recruitment.models.user;
@Component
public class UserAuth {
@Autowired
private HttpSession httpSession;
@Autowired
private IUserDAO userDAO;
}
在控制器中创建对象时,VarshttpSession
和userDAO
为null
userDAO
配置正确,在mycom.netpc.Recruption.controllers.IndexController
类@Controller
中运行良好
My web.xml
<beans ......>
<context:component-scan base-package="com.netpc.recruitment.controllers" />
<bean id="userDAO" class="com.netpc.recruitment.models.user.JDBCUserDAO">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
怎么了?为什么
null
?您的组件扫描仅在“com.netpc.recruption.controllers”上扫描。还应扫描包com.netpc.recruption.models.user中的内容。web.xml中的更改:
<context:component-scan base-package="com.netpc.recruitment.controllers" />
为此:
<context:component-scan base-package="com.netpc.recruitment.controllers, com.netpc.recruitment.models.user" />
希望这对你有用 在控制器中创建对象时,是否扫描了
UserAuth
所在包中的组件。当然,如果它们为空,您将自己创建新实例,而不是让Spring容器来创建。另外,注入HttpSession
对我来说似乎有点不正常。试图使
-否luck@M.Deinum理解。我是春天的新手。你能建议如何使UserAuth
(登录/注销用户)正常工作吗?首先,我是单身汉。它看起来不错,但不是针对Spring的DI;不是IUserDAO userDAO,只是为了测试,HttpSession定义在哪里?不起作用。HttpSession是javax.servlet.http.HttpSession,名称没有区别。您不能在自己喜欢的时候插入HttpSession,我想..:)。无论如何,您必须将第二个包添加到组件扫描中,否则它将永远无法工作。您的类中是否包含正确的组件包?(注释?)。。这个:import org.springframework.stereotype.Component;可以在dispatcher-servlet.xml上进行更改