Defining a controller with @Controller:-
The @Controller annotation indicates that a particular class
serves the role of a controller. Spring does not require you to extend any
controller base class or reference the Servlet API.
The @Controller annotation acts as a stereotype for the annotated class,
indicating its role. The dispatcher scans such annotated classes for mapped
methods and detects @RequestMapping annotations.
you can add component scanning to your configuration. Use the spring-context
schema as shown in the following XML snippet:
beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="r4r.in" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
Following are the important points about Example-servlet.xml
file:
1The [servlet-name]-servlet.xml file will be used to create the beans
defined, overriding the definitions of any beans defined with the same name in
the global scope.
2 The <context:component-scan...> tag will be use to activate Spring MVC
annotation scanning capability which allows to make use of annotations like
@Controller and @RequestMapping etc.
3 The InternalResourceViewResolver will have rules defined to resolve the
view names. As per the above defined rule, a logical view named hello is
delegated to a view implementation located at /WEB-INF/jsp/hello.jsp .