【发布时间】:2013-12-20 21:59:25
【问题描述】:
I just want to know whether controller class method is accessible from another java class.
以下是我的控制器及其方法。
@Controller
public class TestResultUploadController {
@RequestMapping(method = RequestMethod.POST,value="/uploadTestResult")
public @ResponseBody
String uploadTestResult(String testResultBarcode,int deviceLoc) {
//some code goes here
return something;
}
我只想从另一个 java 类调用这个控制器方法。 我怎样才能让它工作? 请建议..
【问题讨论】:
-
如果您必须这样做,我认为您遇到了设计问题。也许您应该将该方法移至较低级别,以便其他控制器可以访问。
-
仅供参考。我可以通过创建控制器对象并直接调用该方法来调用此方法。但在这种情况下,@Autowired 字段不会被初始化。我知道设计是错误的,但流程必须是这种方式,因为我试图从在上下文初始化时初始化的线程调用此方法。
-
@SwapnilWalivkar 您可以在不进行错误设置的情况下实现此流程。你可以把这个方法放在一个服务中,让控制器和你的线程各自调用这个服务,而不是违反mvc原则。
-
你只是想打电话是什么意思?你在考虑服务吗?我想是的。如果您可以进一步指出,我可以提供具体答案
-
manocha_ak 我有在后台运行的线程类。从线程类我试图调用控制器类方法(但@autowired 给我null)。我尝试通过 new 关键字创建对象,但最终在 DAO 层中,EntityManager 变为空。这就是为什么我试图从控制器本身发出请求。
标签: java spring-mvc