Spring 调用service下的方法

qq_28660787 2018-05-30 11:41:03
下面两个字符串不是固定的,仅用于测试,我想去请求这个类下的这个方法
String str = "XXX.SysUserServiceImpl";//类名包地址
String str2 = "getUserLists";//方法名


@RepositoryRestController
@RestController
@RequestMapping("/mobile")
public class MobileController {

@Autowired
private LoginService loginService;
@Autowired
MobileDao mobileDao;
@Autowired
ApplicationContext applicationContext;

@PostMapping("service")
public MobileResponse service(@RequestBody(required = true) MobileServicePara servicePara,
HttpServletRequest request) {

String str = "org.xpn.platform.modules.sys.user.SysUserServiceImpl";
String str2 = "getUserLists";
Class<?> c= (Class<?>) applicationContext.getBean(str);
//获取执行方法
Method m = c.getDeclaredMethod(str2,String.class);
//反射调用方法,methodParam:方法参数
Object obj = (BigDecimal) m.invoke(applicationContext.getBean(str),null);

String json = mobile.getMobileJson();
jsonArray = JSONArray.fromObject(json);

response.setCode(1);
response.setMessage("成功");
response.setData(jsonArray);

return response;
}


在执行applicationContext.getBean(str);的时候回报org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'XXX.SysUserServiceImpl' available

@Service
public class SysUserServiceImpl implements SysUserService {
}
...全文
957 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
亲爱的Joe 2018-05-31
  • 打赏
  • 举报
回复
你这种写法真是。。。 那些ServiceImpl的bean全部是框架自己生成的,你只能通过注入的方式调用,不能自己创建啊。

81,092

社区成员

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

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