IntelliJ IDEA上创建Maven Spring MVC项目

版本

系统:MAC系统
java:8.x
maven:3.x
tomcat:tomcat7-maven-plugin
spring-web:5.0.0
风.fox

JDK 设置

安装JAVA略
设置JAVA环境变量
http://blog.csdn.net/fenglailea/article/details/69501375

Maven 设置

MAC maven 安装和配置 http://blog.csdn.net/fenglailea/article/details/69500318
Maven 更改国内镜像设置【推荐】http://blog.csdn.net/fenglailea/article/details/53304479#t6

IntelliJ IDEA Maven配置 MAC系统 http://blog.csdn.net/fenglailea/article/details/78272769

新建 IDEA Maven 项目

打开IDEA,点击Create New Project,在弹出的界面中选择Maven(左侧菜单列表),右侧选择好Project SDK版本,这里的版本是1.8,如果你没有设置那么可以点击New按钮重新设置JAVA JDK目录。

选中Create from archetype,
在下面的列表中选中org.apache.maven.archetypes:maven-archetype-webapp,点击Next按钮 (如图),
这里写图片描述

在下一页面中输入,
GroupId: 输入组织id,比如 foxiswho.com ,此处不能是中文
ArtifactId:输入项目名称,比如 springMvc
Version: 输入版本号,可以直接回车,默认是1.0-SNAPSHOT

点击Next按钮, 本页是设置Maven,已经设置好了,直接Next,
本页设置 项目名称和项目路径,选择你要保存的位置,点击Finish.

建立 文件夹

main下建立javatest文件夹
test文件夹下建立java文件夹

webapp/WEB-INF下建立staticsviews文件夹
statics文件夹下建立css,js,images文件夹

IDEA 项目 目录配置

菜单
File->Project Structure 弹出的对画框中,左侧Modules菜单
选中main 下的java 点击Sources设置
选中test 下的java 点击Tests设置
最后点击ApplyOK按钮
这里写图片描述

  • Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
  • Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比较彻底的。
  • Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
  • Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
  • Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。
  • 通过上面的介绍,我们知道对于非 maven 项目我们只要会设置 src 即可。
    (引用自http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/eclipse-java-web-project-introduce.html

建立包的路径

选中main下的java文件夹,右击弹出菜单New->Package,输入

com.foxwho.controller

再次选中 java文件夹,右击弹出菜单New->Package,输入

com.foxwho.dao

再次选中 java文件夹,右击弹出菜单New->Package,输入

com.foxwho.service

再次选中 java文件夹,右击弹出菜单New->Package,输入

com.foxwho.pojo

建立文件

选中webapp/WEB-INF/views,右击弹出菜单New->JSP/JSPX,输入index
然后在<body>后面随便输入几个字符,例如foxwho.com

Maven pom.xml配置

增加 tomcat7-maven-plugin

pom.xml<build> 内加入 如下,如果已经有<plugins>了,那么只加入<plugin>部分

<plugins>
            <plugin>
                <!-- 配置tomcat 插件 -->
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>

tomcat7-maven-plugin 2.2 版本兼容 JAVA8 ,所以可以直接使用

增加 日志包 slf4j-log4j12

http://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12
pom.xml<dependencies> 内加入 如下

<!--日志包-->
<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>

增加 j2ee相关包

http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api
http://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api
pom.xml<dependencies> 内加入 如下

<!--j2ee相关包 servlet、jsp、jstl-->
<!--这里没有jetty-maven-plugin这个插件,所以要注释掉  servlet、jsp-->
    <!--<dependency>-->
      <!--<groupId>javax.servlet</groupId>-->
      <!--<artifactId>javax.servlet-api</artifactId>-->
      <!--<version>4.0.0</version>-->
    <!--</dependency>-->
      <!--<dependency>-->
          <!--<groupId>javax.servlet.jsp</groupId>-->
          <!--<artifactId>jsp-api</artifactId>-->
          <!--<version>2.2</version>-->
      <!--</dependency>-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

其他包

pom.xml<dependencies> 内加入 如下

<!--mysql驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.6</version>
        </dependency>
<!--spring相关包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.0.RELEASE</version>
        </dependency>

        <!--其他需要的包-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.6</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>

编译配置

pom.xml<build> 内加入 如下,如果已经有<resources>了,那么只加入<resource>部分

<resources>
            <!--表示把java目录下的有关xml文件,properties文件编译/打包的时候放在resource目录下-->
            <resource>
                <directory>${basedir}/src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
            </resource>
        </resources>

pom.xml保存后,idea会自动下载相应的包,如没有自动下载的话,可以点击内容区右侧Maven Projects选项卡中的重载按钮进行项目的重新载入
这里写图片描述

配置web.xml

maven默认生成的web.xml版本是2.3的,这里要配置成最新的

<?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">
    <!--welcome pages-->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!--配置springmvc DispatcherServlet-->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!--Sources标注的文件夹下需要新建一个spring文件夹-->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

resources目录下建立文件夹spring,并新建立spring-mvc.xml文件,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                         http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.2.xsd
                        http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--启用spring的一些annotation -->
    <context:annotation-config/>

    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
    <context:component-scan base-package="com.foxwho.controller">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--HandlerMapping 无需配置,springmvc可以默认启动-->

    <!--静态资源映射-->
    <!--本项目把静态资源放在了WEB-INF的statics目录下,资源映射如下-->
    <mvc:resources mapping="/css/**" location="/WEB-INF/statics/css/"/>
    <mvc:resources mapping="/js/**" location="/WEB-INF/statics/js/"/>
    <mvc:resources mapping="/images/**" location="/WEB-INF/statics/images/"/>

    <!--但是项目部署到linux下发现WEB-INF的静态资源会出现无法解析的情况,但是本地tomcat访问正常,因此建议还是直接把静态资源放在webapp的statics下,映射配置如下-->
    <!--<mvc:resources mapping="/css/**" location="/statics/css/"/>-->
    <!--<mvc:resources mapping="/js/**" location="/statics/js/"/>-->
    <!--<mvc:resources mapping="/images/**" location="/statics/images/"/>-->

    <!-- 配置注解驱动 可以将request参数与绑定到controller参数上 -->
    <mvc:annotation-driven/>

    <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀(如果最后一个还是表示文件夹,则最后的斜杠不要漏了) 使用JSP-->
    <!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用html)- -->
    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/><!--设置JSP文件的目录位置-->
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- springmvc文件上传需要配置的节点-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="20971500"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="resolveLazily" value="true"/>
    </bean>
</beans>

日志配置

resources目录下,新建立log4j.properties文件,内容如下

#配置根Logger 后面是若干个Appender
log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R

# ConsoleAppender 输出
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

# File 输出 一天一个文件,输出路径可以定制,一般在根路径下
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

控制器建立

com.foxwho中选中controrller,右键 New->Java Class,输入HomeController,点击OK
IDEA会自动创建一个HomeController类,内容如下

package com.foxwho.controller;

public class HomeController {
}

public class HomeController上一行输入@Controller注解,在输入过程中会有浮层提示,选则Controller (org.springframework.stereotype) 这个,一般默认第一个就是,直接回车,IDEA自动引入该包.
加入路由(RequestMapping),加入日志,设置一个action ,最后该类如下

package com.foxwho.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/home")
public class HomeController {
    //添加一个日志器
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    //映射一个action
    @RequestMapping("/index")
    public  String index(){
        //输出日志文件
        logger.info("the first jsp pages");
        //返回一个index.jsp这个视图
        return "index";
    }
}

配置 tomcat7-maven-plugin

菜单
Run->Edit Configurations,
点击左侧+号,选择Maven
按照如下案例配置,路径不需要操作,直接修改 Command Line 部分为tomcat7:run
这里写图片描述
ApplyOK按钮

运行项目

点击 运行图标或者 小虫子图标开始运行项目,最后在[INFO] Running war on位置点击 后面的URL地址或者复制URL地址到浏览器内打开

http://localhost:8080/springMvc/

http://localhost:8080/springMvc/home/index  这个就是控制器内的你建立的哪个index.jsp文件

目录说明

最好根据 阿里巴巴Java开发手册(终极版) 和 阿里巴巴Java开发规约插件来
https://github.com/alibaba/p3c

controller:控制器
dao:数据访问
service:相对具体的业务逻辑层
pojo:实体类
webapp/WEB-INF/views:视图

完整源码:http://download.csdn.net/download/wljk506/10029515

参考:http://www.cnblogs.com/Sinte-Beuve/p/5730553.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风.foxwho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值