Spring注入后反射调用出现空指针java.lang.NullPointerException

qq_33232922 2017-08-03 04:59:21
@RequestMapping(value="/{ClassName}/{MethodName}")
public ModelAndView test1(@PathVariable(value="MethodName") String MethodName, @PathVariable(value="ClassName") String ClassName
) throws Exception{
ModelAndView mv=new ModelAndView("Hello");
System.out.println("111111111");
Class clz = Class.forName("com.piggo.httpurlconn.service.post."+ClassName);
Object obj =clz.newInstance();
Method method=obj.getClass().getDeclaredMethod(MethodName);
int a=(int)method.invoke(obj);
System.out.println(a);
System.out.println("22222222222");
return mv;
}
用了反射这里

@Autowired
private SendPost sendPost;

@Autowired
private BaseinfocompanyMapper baseinfocompanyMapper;

@Override
public int Company() {
String url = "http://172.16.5.101:8080/baseinfo/company?company=xiaozhubenben";
Baseinfocompany baseinfocompanypojo=new Baseinfocompany();
baseinfocompanypojo.setId(1);


baseinfocompanypojo=baseinfocompanyMapper.selectOne(baseinfocompanypojo);


JSONObject obj = new JSONObject();
Map<String, Object> baseInfoCompany = new HashMap<String, Object>();
obj.put("Source", "0");
obj.put("CompanyId", "xiaozhubenben");
obj.put("IPCType", "baseInfoCompany");
baseInfoCompany.put("CompanyId", "xiaozhubenben");
baseInfoCompany.put("CompanyName", baseinfocompanypojo.getCompanyName());
baseInfoCompany.put("Identifier", baseinfocompanypojo.getIdentifier());
baseInfoCompany.put("Address", baseinfocompanypojo.getAddress());

obj.put("baseInfoCompany", baseInfoCompany);// 把Map数据放入Json
return sendPost.sendPost_JSON(url, obj);
}
然后红色的代码注入调用的时候空指针 ,但是绿色的代码没有空指针,绿色的代码是我自己写的方法,红色的代码是注入了一个通用Mapper。不通过反射可以运行,通过反射就会空指针。
...全文
1575 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
你咋那么帅0 2019-09-20
  • 打赏
  • 举报
回复
问题解决了吗,我也出现了同样的问题......
qq_33232922 2017-08-08
  • 打赏
  • 举报
回复
引用 6 楼 u013835778 的回复:
依赖注入没注入进去
我知道是依赖注入没有注入进去,那为什么反射注入部进去,正常的就可以呢
浮云若水 2017-08-08
  • 打赏
  • 举报
回复
@Repository 持久层没有加注解
lifewell1 2017-08-04
  • 打赏
  • 举报
回复
依赖注入没注入进去
qq_26790435 2017-08-04
  • 打赏
  • 举报
回复
重写你要调用的service类的构造方法,要无参的构造方法,这个类里面写上set方法,在set方法写上Resource注解,看一下启动的时候有没有进service类的构造方法和这个set方法,看一下set进去的对象是不是空对象
qq_33232922 2017-08-04
  • 打赏
  • 举报
回复
引用 3 楼 feg545 的回复:
使用@Autowired注解的类本身也必须是Spring Bean 你可以在spring配置文件中定义这个bean,或开启自动扫描
BaseinfocompanyMapper 接口我也用@Service 注册成bean了。所以调用不到才觉得奇怪呀。而且你看好我说的,正常调用可以,用了反射调用这个方法就是空指针、
福来哥 2017-08-03
  • 打赏
  • 举报
回复
使用@Autowired注解的类本身也必须是Spring Bean 你可以在spring配置文件中定义这个bean,或开启自动扫描
qq_33232922 2017-08-03
  • 打赏
  • 举报
回复
引用 1 楼 chuhx 的回复:
@Autowired改为@Resource,试试看
没用,还是空指针。快绝望了,有啥好方法解决 一下吗。
chuhx 2017-08-03
  • 打赏
  • 举报
回复
@Autowired改为@Resource,试试看

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧