注解:
1. Controller:
<context:component-scan base-package="controller"/>
<!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
-
组件扫描(Component Scanning):通过使用
<context:component-scan>
元素,可以自动扫描指定包下的所有类,并根据注解(如@Component, @Service, @Repository, @Controller等)自动注册为Spring Bean。
<mvc:default-servlet-handler />是Spring MVC中用于配置默认的Servlet处理器的XML元素。在Spring MVC中,当请求到达DispatcherServlet时,它会根据配置的处理器映射规则将请求分发到相应的控制器方法进行处理。而<mvc:default-servlet-handler />
在spring中一般采用@RequestMapping注解来完成映射关系 要想使@RequestMapping注解生效 必须向上下文中注册DefaultAnnotationHandlerMapping 和一个AnnotationMethodHandlerAdapter实例 这两个实例分别在类级别和方法级别处理。 而annotation-driven配置帮助我们自动完成上述两个实例的注入。
元素的作用就是配置一个默认的Servlet处理器,用于处理静态资源(如HTML、CSS、JavaScript文件等)的请求。具体来说,当请求的URL匹配到了静态资源的路径时,<mvc:default-servlet-handler />
会将请求转发给默认的Servlet容器(如Tomcat),由Servlet容器来处理这些静态资源的请求。这样可以避免在每个控制器方法中都添加对静态资源的处理逻辑,简化了开发流程。 <mvc:annotation-driven />是Spring MVC中用于启用注解驱动的XML元素。在Spring MVC中,注解驱动是一种简化开发的方式,它允许开发者使用注解来定义控制器、请求映射、参数绑定等配置,而无需编写大量的XML配置代码。通过启用注解驱动,Spring MVC会自动扫描并注册带有特定注解的类,并根据注解的配置来处理请求和响应。具体来说,<mvc:annotation-driven />
元素会启用以下功能: 1. 组件扫描(Component Scanning):通过自动扫描指定包下的所有类,并根据注解(如@Controller, @Service, @Repository等)将它们注册为Spring Bean。 2. 请求映射(Request Mapping):使用@RequestMapping注解来定义控制器方法的URL映射规则。 3. 参数绑定(Parameter Binding):使用@PathVariable、@RequestParam、@ModelAttribute等注解来绑定请求参数到控制器方法的参数上。 4.返回值处理(Return Value Handling):根据方法的返回类型,自动选择合适的视图解析器来渲染返回结果。 5.异常处理(Exception Handling):使用@ExceptionHandler注解来处理控制器方法抛出的异常。 6.其他注解支持:如@Valid、@InitBinder等。
<!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 后缀 --> <property name="suffix" value=".jsp" /> </bean> 这段代码是Spring MVC框架中的视图解析器配置。它使用了InternalResourceViewResolver
类来解析视图名称,并将其映射到实际的JSP文件路径。具体来说,该配置定义了一个名为"internalResourceViewResolver"的bean,它是InternalResourceViewResolver
类的实例。通过设置prefix
和suffix
属性,可以指定JSP文件的路径前缀和后缀。在这个例子中,前缀被设置为"/WEB-INF/jsp/",后缀被设置为".jsp"。 这意味着当控制器方法返回一个视图名称时,Spring MVC会根据这个视图名称加上前缀和后缀来查找对应的JSP文件。例如,如果控制器方法返回的视图名称为"index",那么最终会查找"/WEB-INF/jsp/index.jsp"文件作为视图进行渲染。 这种配置方式使得开发者可以将视图逻辑与控制器逻辑分离,提高了代码的可维护性和可扩展性。