Spring 调用service下的方法
下面两个字符串不是固定的,仅用于测试,我想去请求这个类下的这个方法
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 {
}