Spring入门-MVC使用注解

前面学习了使用配置文件来完成一个SpringMVC,但是随着控制器写的越来越多,会显得代码很臃肿,使用注解能避免这种情况,让代码显得更加简洁。

编程步骤

前期准备就是pom.xml导包Spring-webmvc部署描述文件web.xml配置DispatcherServlet,resources目录下添加Spring启动所需的xml配置文件,这个跟上篇没什么区别,编程注意点如下:

 1 Model类不再实现Controller接口

 2 Model类不实现Controller接口,方法名就不做要求了,不一定是以前的handlerRequest。返回类型除了可以是ModleAndView,也可以是String类型

 3 Model类中可以添加多个方法

 4 Model类使用@Controller注解,不需要在配置文件中配置bean元素

 5 可以在方法前或者类前添加@RequestMapping,相当于handlerMapping的作用

 6 在配置文件中,添加ViewResolver配置、组件扫描、添加MVC注解扫描(识别@RequestMapping)

实现注解使用SpringMVC

导包

1   <dependency>
2   <groupId>org.springframework</groupId>
3   <artifactId>spring-webmvc</artifactId>
4   <version>4.2.3.RELEASE</version>
5   </dependency>

web.xml配置DispatcherServlet

 1 <!-- 配置DispatcherServlet 使用注解完成springMVC -->
 2   <servlet>
 3     <servlet-name>myspringmvc</servlet-name>
 4     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 5     <init-param>
 6         <param-name>contextConfigLocation</param-name>
 7         <param-value>classpath:my-spring-mvc.xml</param-value>
 8     </init-param>
 9     <!-- 设置tomcat启动就开启Spring -->
10     <load-on-startup>1</load-on-startup>
11   </servlet>
12   <servlet-mapping>
13     <servlet-name>myspringmvc</servlet-name>
14     <url-pattern>*.get</url-pattern>
15   </servlet-mapping>

配置spring启动读取的xml文件

里面需配置组件扫描,将扫描包下的类纳入Spring容器来管理,还需配置注解驱动,最后还需要配置视图解析器。

 1 <!-- 配置组件扫描 -->
 2    <context:component-scan base-package="com.boe"></context:component-scan>    
 3    <!-- 配置MVC注解扫描 -->
 4    <mvc:annotation-driven></mvc:annotation-driven>
 5    <!-- 配置视图解析器 -->
 6     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 7            <property name="prefix" value="/WEB-INF/" />
 8            <property name="suffix" value=".jsp" />
 9            <!-- 前缀和后缀配置,视图名hello通过上面的配置可以映射到/WEB-INF/hello.jsp -->
10     </bean> 

写一个Model

Model里使用@Controller注解,代表它是一个Controller,另外还需要让请求转发到对应的Controller,这里直接在方法里添加@RequestMapping注解来完成。

 1 package com.boe;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 import org.springframework.web.servlet.ModelAndView;
 6 
 7 /**
 8  * 测试使用注解完成一个helloSpringMVC
 9  * @author yangchaolin
10  */
11 @Controller
12 @RequestMapping("/demo")
13 public class helloController {
14     //方法1
15     @RequestMapping("/hello.get")
16     public String hello() {
17         System.out.println("返回一个String");
18         return "hello";
19     }
20     //方法2
21     @RequestMapping("/helloModelAndView.get")
22     public ModelAndView helloModelAndView() {
23         System.out.println("返回ModelAndView");
24         return new ModelAndView("hello");
25     }
26 }

写JSP

略,参考博文的jsp内容。

测试结果

项目上右击选择启动项目on server,然后访问Model里写的请求路径,注意类前面也加了一个@RequestMapping,这样路径名将在完整项目名后还有一个/demo,不加的话就直接项目名后/hello.get访问。

控制台情况,可以看出Model里方法可以返回String和ModelAndView。

以上就是使用注解完成SpringMVC的过程,其相比不使用注解将减少Model代码,减少spring-mvc中对HandlerMapping的配置,减少对Model对应bean的配置。

参考博文

(1)https://www.cnblogs.com/youngchaolin/p/11347771.html

原文地址:https://www.cnblogs.com/youngchaolin/p/11349493.html