@Service 和@Controller 注释用于在 Spring 框架中使用类路径扫描自动检测 bean。
所以我尝试了以下四个用例,但我对案例 4 有点困惑,因为它给了我 404 错误。
用例 1: @Controller 和类级 @RequestMapping
@Controller
@RequestMapping(value = "/home")
public class MyController
{
...
}
结果:
http://localhost:8080/MyApp/home/helloWorld/va ---> Hello va
用例 2:@Service 和类级别的@RequestMapping
@Service
@RequestMapping(value = "/home")
public class MyController
{
...
}
结果:
http://localhost:8080/MyApp/home/helloWorld/va ---> Hello va
用例 3:@Controller 和无类级别的@RequestMapping
@Controller
public class MyController
{
...
}
结果:
http://localhost:8080/MyApp/helloWorld/va ---> Hello va
用例 4:@Service 和无类级别的@RequestMapping
@Service
public class MyController
{
...
}
结果:
http://localhost:8080/MyApp/helloWorld/va ---> error 404
代码:
@Service
@RequestMapping(value = "/home")
public class MyController
{
@RequestMapping(value = "/helloWorld/{Name}", method = RequestMethod.GET)
public @ResponseBody String HelloWorld(@PathVariable("Name") String name)
{
return "Hello "+name;
}
}
简而言之,在使用@Service 时,如果我不在类级别使用@RequestMapping,我将收到 404 错误。
最佳答案
如果 bean 在类级别具有 @Controller
或 @RequestMapping
,则它被视为请求处理程序。
关于java - @service 在 spring 中的混淆行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433449/