Intellij IDEA + Spring MVC + Maven 环境搭建

时间:2020-12-30 09:37:45

目录结构:

Intellij IDEA + Spring MVC + Maven 环境搭建Intellij IDEA + Spring MVC + Maven 环境搭建

lib里面有jar包是因为该Maven工程创建了之后又添加了 Spring MVC 框架支持,idea自动导入的jar包。

关键文件的配置

1. pox.xml (Maven项目)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>sfwn</groupId>
    <artifactId>springmvc</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>

    </dependencies>

</project>

2.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <!-- 加载Spring配置文件 -->
    <!--<context-param>-->
        <!--<param-name>contextConfigLocation</param-name>-->
        <!--<param-value>/WEB-INF/applicationContext.xml</param-value>-->
    <!--</context-param>-->
    <!--<listener>-->
        <!--<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>-->
    <!--</listener>-->

    <!-- 加载spring mvc -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

3.dispatcher-servlet.xml  (与 web.xml 中制定的 servlet-name 对应)

   注:applicationContext.xml 文件好像可以不定义,具体的还不明白,留给以后学习

<?xml version="1.0" encoding="UTF-8"?>
<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"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:jee="http://www.springframework.org/schema/jee"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

       <!-- HandlerMapping -->
       <bean
               class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

       <!-- HandlerAdapter -->
       <bean
               class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
       <!-- ViewResolver -->
       <!--<bean
               class="org.springframework.web.servlet.view.InternalResourceViewResolver">
              <property name="viewClass"
                        value="org.springframework.web.servlet.view.JstlView" />
              <property name="prefix" value="/WEB-INF/jsp/" />
              <property name="suffix" value=".jsp" />
       </bean>-->


       <bean id="viewResolver"
             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
              <property name="prefix" value="/WEB-INF/jsp/" />
              <property name="suffix" value=".jsp" />
       </bean>




       <mvc:annotation-driven />
       <!-- 处理器 -->
       <!-- <bean name="/hello" class="com.mvc.jn.controller.HelloWorldController"/> -->
       <context:component-scan base-package="lj.controllers"/>
</beans>

4.Controller

package lj.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.bind.annotation.RenderMapping;

/**
 * Created by Sfwn on 2015/9/10.
 */
@Controller
public class HelloController {
    @RequestMapping({"/hello", "lj", "/"})
    public String hello() {
        System.out.println("hello");
        return "hello";
    }
}

其他配置:

1.tomcat配置

 1.1 先在Deployment(部署)标签下按+号添加 Artifacts , Application context 为 对应的 /springmvc

        注:Application context 是什么我还不明白

Intellij IDEA + Spring MVC + Maven 环境搭建

 1.2  修改 On Upda action 和 On frame deactivation 为下图的选项,只有在1.1里先设置Deployment标签之后这两个选项框里才能选择Update classes and resources

Intellij IDEA + Spring MVC + Maven 环境搭建


检测:

  打开浏览器:输入

//三者都能访问,第二个 <span style="font-family: Arial, Helvetica, sans-serif;">localhost:8080/springmvc </span>要访问的话得先删除默认的index.jsp
localhost:8080/springmvc/hello
localhost:8080/springmvc
localhost:8080/springmvc/lj


小结:   
1.配置文件的配置是关键,其中xmlns的配置很重要,有时间需要学习一下xml命名空间;
2.jar包依赖如果可以都用maven来管理,如果一下maven一下本地添加,jar包重复添加的话,tomcat可能会报错;如果真的报错了,一定要学会自己看日志文件,caused by!然后查阅资料进行解决,知道是什么问题的话网上绝大部分都有答案;
3.心情烦躁的时候,最好休息一下,做点别的事情,不要死磕,从头到尾好好整理思路,会恍然大悟。