Elastic-Job(二):Spring MVC的最小化配置

由于后续学习Elastic-Job需要写代码,所以先将工程搭建起来,基于Spring MVC。

一、新建一个maven-webapp工程。###

com.spring.lw
Davis

二、Spring MVC的最小化配置:###

1.引入jar包:####

pom.xml文件节点内增加


    org.springframework
    spring-webmvc
    4.2.4.RELEASE


    org.springframework
    spring-context
    4.2.4.RELEASE

2.web.xml配置




  
        contextConfigLocation
        /WEB-INF/applicationContext.xml
        
     
     
     
        
            org.springframework.web.context.ContextLoaderListener
        
     
  
    
        SpringMVC
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            /WEB-INF/SpringMVC-servlet.xml
            
        
        1
    
    
    
        SpringMVC
        /
    

其中,必要的配置就是指定servlet和listener.

ContextLoaderListener指定了IOC容器初始化的方法
DispatcherServlet则定义了mvc的相关内容,并配置拦截的url,如上面所示,所有/开头的请求,都会通过SpringMVC这个servlet进行处理。

3.applicationContext.xml

/src/main/resources下新建文件,内容先空着





4.SpringMVC-servlet.xml

里面放一个扫描controller的配置即可。



    
    

5.controller文件

新建几个package,com.spring.lw开头的,下面有controller、service、vo等等等。
在controller包下新建:

package com.spring.lw.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class RestAPIController {
    @RequestMapping("/hello")
    public @ResponseBody String test() {
        return "Spring MVC...";
    }
    
}

6.一些配置:

然后放Tomcat里面启动,哟哟哟,报错了...

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

tomcat在发布项目的时候没有同时发布maven依赖所添加的jar包,所以找不到。
解决方法:设置一下eclipse:
项目 —> properties -> Deployment Assembly -> Add -> Java Build Path Entries -> 选择Maven Dependencies -> Finish -> OK
把对应的Maven依赖包也发布到tomcat,调试时会自动把那些jar发布到指定目录下,tomcat也能找到那些jar了。

再次启动,依然报错,错误为:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]

日志说的很清楚,找不到/WEB-INF/applicationContext.xm,但是明明有这个文件。
愿意是这样的,由于在没用Maven之前,我的spring配置文件——applicationContext.xml是放在WEB-INF根目录下的,在项目运行时都是正常的,重构成Maven项目之后,我的配置文件自然应该放在src下的resources文件夹下了,那么在web.xml中我自然将中contextConfigLocation的参数值由WEB-INF/applicationContext.xml修改为classpath:applicationContext.xml了。注意classpath:SpringMVC-servlet.xml也要修改。

修改后的完整的web.xml文件为:




  
        contextConfigLocation
        classpath:applicationContext.xml
        
     
     
     
        
            org.springframework.web.context.ContextLoaderListener
        
     
  
    
        SpringMVC
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:SpringMVC-servlet.xml
            
        
        1
    
    
    
        SpringMVC
        /
    

启动后访问http://localhost:8088/Davis/hello,页面打开并展示Spring MVC...,没有问题。

你可能感兴趣的:(Elastic-Job(二):Spring MVC的最小化配置)