@Servicepublic class UserService { @Autowired UserMapper userMapper; public List
@Controller@SessionAttributes(value = {"hasUser"},types = {User.class})public class UserController { @Autowired UserService userService; @RequestMapping(value = "/login",method = RequestMethod.POST) public String doLogin(User user, Model model){ List
问题:ioc找不到Controller,因为没有service可以注入
进行测试
@Test public void test02(){ ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml"); UserMapper mapper = ioc.getBean(UserMapper.class); User user1 = new User(null,"",123456,"123456","男",""); List
发现service已经注册到容器中,而controller没有注册
检查配置文件,applicationContext文件扫描了除controller以外所有包,springmvc-servlet.xml只扫描了controller包,而且两个配置文件都加载了
修改:将applicationContext.xml包扫描改为全部,发现测试可以输出controller,进行项目部署
问题:依旧报controller没有的错
解决:在web.xml文件的启动ioc容器下方加入
org.springframework.web.context.ContextLoaderListener
不配置ContextLoaderListener的话,spring默认去这个目录加载/WEB-INF/applicationContext.xml,这也可能是导致之前没有注册controller的错,因为我们的controller是写在springmvc-servlet.xml中的,没加载springmvc-servlet.xml当然没有了,一个下午吃了一个教训。