【问题标题】:Confusing behavior of @service in spring春季@service的令人困惑的行为
【发布时间】:2016-09-11 06:27:59
【问题描述】:

@Service 和 @Controller 注解用于在 Spring 框架中使用类路径扫描进行自动 bean 检测。

所以我尝试了以下四个用例,但我对案例 4 有点困惑,因为它给了我 404 错误。

用例 1: @Controller 和类级别 @RequestMapping

@Controller
@RequestMapping(value = "/home")
public class MyController
{
...
}

结果:

http://localhost:8080/MyApp/home/helloWorld/va ---> 你好 va

用例 2: @Service 和类级别 @RequestMapping

@Service
@RequestMapping(value = "/home")
public class MyController
{
...
}

结果:

http://localhost:8080/MyApp/home/helloWorld/va ---> 你好 va

用例 3: @Controller & 无类级别 @RequestMapping

@Controller
public class MyController
{
...
}

结果:

http://localhost:8080/MyApp/helloWorld/va ---> 你好 va

用例 4: @Service & 无类级别 @RequestMapping

@Service
public class MyController
{
...
}

结果:

http://localhost:8080/MyApp/helloWorld/va ---> 错误 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 错误。

【问题讨论】:

标签: java spring spring-mvc annotations spring-annotations


【解决方案1】:

如果 bean 在类级别具有 @Controller@RequestMapping,则将其视为请求处理程序。

【讨论】:

  • 要么? AFAIK 我们需要控制器,因此在启用自动扫描后,spring 将在容器中导入 bean。通过使用 RequestMapping,我们可以映射应用程序的传入请求。另外,我的问题与使用 @service 后没有类级别 requestMapping 的 404 错误有关。
  • @Vaibs 我写了 bean。这意味着春季已经考虑过该课程。你不需要@Controller 来声明一个bean,因为你已经在你的问题中证明了自己。 “我的问题也与在没有类级别 requestMapping 的情况下使用 @service 后出现 404 错误有关” 我回答了这个问题。
  • 你是通过xml还是java类进行配置?
  • @Vaibs 在示例 4 中,您将 MyController 注释为 @Service,因此它是一个 bean。您没有使用@Controller@RequestMapping 对其进行注释,因此该bean 不会处理任何请求。因此你得到一个 404,你的请求没有被处理。如果使用 XML 或 Java 配置无关紧要。
  • 感谢您的解释。简而言之,“@service”注释仅在我们在类级别使用“@RequestMapping”时才有效,但我没有找到任何显示这种差异的文档或参考,而且我知道“@service”和“@controller”之间的区别是针对仅分类。
猜你喜欢
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多