在春天混淆@service的行为

时间:2016-09-11 06:27:59

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

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

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

用例1: @Controller&班级@RequestMapping

$.ajax({
    url: 'sendform.php?action=datapp',
    type: 'POST',
    data: data,
    success: function (response) {
        if (response == 'SUCCESS') {
            $('#FormA').show();
            $('#FormB').hide();
        }
    },

结果:

  

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

用例2: @Service&班级@RequestMapping

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

结果:

  

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

用例3: @Controller&没有班级@RequestMapping

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

结果:

  

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

用例4: @Service&没有班级@RequestMapping

@Controller
public class MyController
{
...
}

结果:

  

http://localhost:8080/MyApp/helloWorld/va --->错误404

@Service
public class MyController
{
...
}

所以简而言之,在使用@Service时,如果我在类级别使用@RequestMapping,则会收到404错误。

1 个答案:

答案 0 :(得分:1)

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