Reputation: 1606
@Service and @Controller annotations are used for automatic bean detection using classpath scan in Spring framework.
So I tried below four use cases but I am bit confused with case 4 as it gives me 404 error.
use case 1: @Controller & class level @RequestMapping
@Controller
@RequestMapping(value = "/home")
public class MyController
{
...
}
Result:
http://localhost:8080/MyApp/home/helloWorld/va ---> Hello va
use case 2: @Service & class level @RequestMapping
@Service
@RequestMapping(value = "/home")
public class MyController
{
...
}
Result:
http://localhost:8080/MyApp/home/helloWorld/va ---> Hello va
use case 3: @Controller & no class level @RequestMapping
@Controller
public class MyController
{
...
}
Result:
http://localhost:8080/MyApp/helloWorld/va ---> Hello va
use case 4: @Service & no class level @RequestMapping
@Service
public class MyController
{
...
}
Result:
http://localhost:8080/MyApp/helloWorld/va ---> error 404
code:
@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;
}
}
So in short when using @Service, if I dont use @RequestMapping at class level am getting 404 error.
Upvotes: 3
Views: 238
Reputation: 26828
A bean is considered a request handler if it has either @Controller
or @RequestMapping
at class level.
Upvotes: 1