SpringMVC的CRUD
1. 新建⼀个maven项⽬,并设置pom⽂件,设置当前项⽬为web项⽬,将packaging的属性值设置为
war⽅式,添加spring mvc的依赖包, spring-webmvc(4.3.6),分别添加插件,jdk和tomcat
2. 在项⽬中添加web元素,webapp, WEB-INF以及web.xml,其中在web.xml⾥⾯要添加spring mvc
的引⼊,添加DispatcherServlet,这个是spring mvc的核⼼的前端控制器,注意还要设置
DispatcherServlet的contextConfifigLocation,如果不设置该属性,则Spring MVC会⾃动的在WEB�
INF下查找[servlet-name]-servlet.xml⽂件来作为SpringMVC的配置⽂件
3. 配置Spring MVC的配置⽂件,classpath下的spring-mvc.xml⽂件,该⽂件在本案例中分别配置了视
图解析器、消息资源、缺省servlet处理器、注解驱动器、上下⽂包扫描。
1. 视图解析器:InternalResourceViewResolver, 该属性⾥可以分别配置前缀和后缀,为了保证
程序的安全性,可以将⻚⾯放在/WEB-INF/view/下,所以前缀可以直接配置为该值。如果没有
这⽅⾯的需求,不配置该属性,则前缀为/,代表的是webapp⽬录,后缀可以根据项⽬需要设
置为.jsp或者.html
2. 消息资源:ReloadableResourceBundleMessageSource,该bean的配置有⼀个要求,id必须
叫做messageSource,Spring MVC框架会读取该id所对应的bean对象来读取资源配置⽂件,
⾥⾯设置了basename属性,⽤作读取该⽂件,该⽂件的配置只需要⽂件名,不能加后缀,为
了更好的实现国际化,我们可以在msg⽂件后⾯拼接语⾔和国家,⽐如msg_zh_CN,
msg_en_US以及其他国家的语⾔均可以按照这种⽅式来设定。有些ide环境可能只认识
resources,则可以将msg⽂件放⼊resources⽬录下,否则不同的ide环境找不到该⽂件
3. 缺省servlet处理器:mvc:default-servlet-handler,该配置可以保证Spring MVC项⽬可以直接访
问静态资源,⽐如可以直接访问index.html
4. 注解驱动器:mvc:annotation-driven,该配置使得当前项⽬可以使⽤注解来完成配置。在控制器类
之上,可以添加Controller注解,⾥⾯还有RequestMapping,GetMapping,PostMapping,
PathVariable等注解,可以完成各⾃的功能
5. 上下⽂的包扫描:context:component-scan,使⽤该配置,可以使得该basePackage所对应的
包下的所有Component组件直接被扫描出来使⽤,前提是需要在类之上添加@Component注
解,但是我们的Controller以及后⾯要⽤的Service和Repositoy也都是Component组件,所以可
以直接被扫描出来进⾏使⽤
6. 该配置⽂件还配置了两个bean,⾥⾯是name和class,那么要注意,name⾥对应的值是url,
name⾥⾯允许存放特殊字符,因为路径字符串前⾯会有⼀个路径符号/,所以这⾥只能使⽤
name⽽不能使⽤id,意思是该url请求发出来之后,会⾃动交给后⾯的控制器类来实现处理的功
能,该控制器类是实现了Controller接⼝的类,该类中有⼀个返回值为ModelAndView对象的⽅
法名为handlerRequest的包含HttpServletRequest和HttpServletResponse两个参数的⽅法。ModelAndView对象是⼀个可以同时包含视图和模型对象的对象,但是在使⽤的过程中,有时
候只需要显示⻚⾯,有时候可能在显示⻚⾯的同时,还需要数据的传递。注意:Controller接⼝
与Controller注解是两个不同的东⻄。