springmvc里面注入之后调取的方法

springmvc里面注入之后调取的方法返回为空指针,但是实际上穿的参数没错,单返回的却是空指针

注解映射支持已经开启,service映射也有

图片说明

图片说明
就是不知道是什么问题

图片说明
看下你的接口是否没有实现,或者指定的路径是否有误

图片说明,你参考一下,不知道跟你的情况是不是一样的

reportDatasService,你要确定你在service层中使用service注解的name属性也是这个值,我看你好像是多了一个‘s’

 <!-- 自動掃描納入spring管理的類,除開spring控制器,如果和控制器一起扫描,事物可能会失效 -->
    <context:component-scan base-package="com">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

看下扫描那里有没有问题

reportDatasService里面的方法报空异常吧?看一下service的代码

name里面的reportDatasService是你在浏览器里访问的名字,你对比一下你的访问链接

图片说明
你看一看你的service里面的这个名字

你的配置文件是springmvc.xml,可见是针对controller层。你把springmvc中的bean配置移到spring的配置文件中

看看ApplicationContext里面的bean和你要取的是一个id吗

检查id的名字和你class注入时候是否一样。看看是否配置了此包的路径。如果autowire不行,试试ApplicationContext的getBean()方法

Spring的IOC容器包含了SpringMVC的IOC,即SpringMVC配置的bean可以调用Spring配置好的bean,反之则不可以。

如果SpringMVC想通过@Autowired注入Spring容器里的属性,即使Spring配置文件已经配置好了。

/context:component-scan

或者 ,

SpringMVC配置文件中也得需要从新配置

你的代码和你贴 的异常信息不符,不是一个类,没法查问题。

报异常的32行处,你有说那个方法正常?到底是哪里有问题?

配置文件里面跟自己用注解调用的名字不一样吧,一个是 reportDatasService,一个是reportDataService,一个小写s的区别,找不到你注入的Service

你确认你的参数rd不为空?检查下你的参数如果为空的话,参数这样写(@RequestBody ReportData rd)

你用postman试试,

正常的传入rp,不正常的传入rd,在错误之前判断rd是否是null。
错误应该是用rd,但是没给参数吧

是否加入了 @Service 注解 你根据你报空指针的代码 一步步跟一下 看看问题是处在哪里

service的实现类标注解@service了么?