2021-0217:将项目更改为maven使用ioc注解时,发生nopointexception:
- 1.分析原因:虽然将servlet交给容器创建了,但是未引入springMVC,在webxml映射sevlet时,未从容器中取对象;于是我将sevlet里的service进行手动new创建,错误相同;
- 2.分析原因:虽然在controller中手动注入了service,但是sevice仍然依赖容器注入dao层,如果全手动注入的话就用不到容器了,于是我在controller中获取容器,通过容器取到 service对象,报出此异常:java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException
- 3.分析原因:controller的@Controller和@Autowired注解未去除,在容器扫描时出错,可以在配置文件中去除controller的扫描路径,这里我对注解进行了注释,至此功能恢复;
- 4.本次思考:
- 1)bean层对象频繁使用在方法内作为局部变量,不适合提取至全局变量进行属性注入(如果提取需要将容器的创建方式改为多例模式)
- 2)Controller层的bean对象需要经过spring匹配去调用才能实现自动注入(该条为猜测)