文档章节

使用IntelliJ IDEA开发SpringMVC网站(一)开发环境

Gaussic
 Gaussic
发布于 2015/03/11 17:05
字数 2622
阅读 107903
收藏 121

转载请注明出处:Gaussic

访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo

 

文章已针对IDEA 2016做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码。

另外:文中的附图部分仍然为旧版本,请参照自身版本进行配置。

前言

       由于近期一直在做学术方面的工作,项目开发相关工作并没有花太多的时间,导致这篇文章的更新停步了很长一段时间。现在应大家的要求,补上剩余部分,望能给大家带来一些帮助。由于时间的原因,在开发环境上面有了一定的更新,但是并不造成太大的影响。

一、相关环境

     - Intellij IDEA 2016.2 Ultimate

     - Tomcat 8.0.35

     - JDK 1.8.0_92

     - Spring 4.2.6

     - MySql 5.7

     - Maven 3.3.9

     - Bootstrap 3.3.5

       以上是我要做的这个demo所需要的东西,当然有些是可选的,版本也是可控的。比如说如果你用不惯Maven的话可以自行去官网下载jar包然后导入自己的工程中,如果想要学习下Maven可以看看《Maven视频教程》(偶然找到,这个老师做的视频都挺好,推荐以下),不用完全的去学习Maven,懂大概意思后再去找找IntelliJ IDEA如何配置maven的相关文章就足够了。

      还有Bootstrap,纯粹是个人洁癖,不需要这可以去之。

      事先声明,请确保IntelliJ IDEA、Tomcat、MySql和JDK都已经安装好。Maven和Bootstrap的话能有则有。前者为了让导包更容易,后者为了让页面更美观。此外,由于jdk以及mysql的安装网上已经有了很多教程,在此为节省篇幅不做介绍。

二、本地Maven与Tomcat的安装

注:如果使用IntelliJ IDEA集成的maven 3.0.5的话,可以忽略此步安装。

1、下载并安装本地maven    

    点击“Apache-Maven官方网站”进入官网,点击左侧Download选项:

     进入了下载页面,往下拉可发现当前版本是3.3.3,点击下面红框中的apache-maven-3.3.9-bin.zip就可下载,下载后解压缩到相应目录下:

    新增系统变量MAVEN_HOME:即MAVEN安装目录:

    在Path中加入:%MAVEN_HOME%\bin;    

   在cmd中输入mvn -v,若显示如下,则说明本地maven配置完成:

2、下载并安装本地Tomcat

进入Tomcat官网,点击左侧Download的Tomcat8.0,进入Tomcat的下载页面:

64位Windows版本下载64-bit Windows zip (pgp, md5, sha1),解压到所需目录下:

  解压后到\bin\目录下运行startup.bat,如图下所示,如果出现Server startup in xxxx ms说明Tomcat安装成功。

三、创建Maven Web项目

    前面说了这么多,差不多基本的东西都保障了(前提保证你已经安装了jdk)。现在进入正题,如何来创建一个Web项目。对于不使用Maven的开发者,可以直接建一个简单的Web项目。使用Maven的话,请按照图进行操作。

    菜单File->New Project可进入上图界面,首先选择左边栏Maven,再配置JDK(一般如果之前添加了JDK的话会自动填充,如未添加的话点击旁边的New将JDK目录导入即可)。勾选“Create from archetype“,然后选中4处蓝色位置webapp,点Next,进入如下界面:

    这里需要填写GroupId和ArtifactId还有Version,这三个属性目的是标识你的项目的唯一性,比如Tomcat的GroupId是org.apache,即它是apache组织的项目,ArtifactId是tomcat,项目名为tomcat,而我当前使用的Version是7.0.68。这些只在发布时有用,在此可以随便填写,填好后点Next,到如下界面。

    打开Maven home directory,可以发现IntelliJ IDEA已经集成了Maven 2和Maven 3两个版本,如果使用默认集成的maven的话,选择Buldled(Maven 3),直接点击Next。

   我们也可以导入本地新安装的较新的Maven版本,点击蓝色箭头右边的 ... 按钮将Maven路径导入即可,点击Next:

   填写项目名,选择项目保存路径,点击Finish:

   进入如下界面,maven会在后台生成web项目,这需要等待一定的时间,视网络环境而定,经验发现用较新版本的maven项目生成更快,使用IDEA集成的maven可能会等待很长一段实践。

    左边红框中展示了该项目的文件结构。可以发现,它在src/main下创建了一个recources文件夹,该文件夹一般用来存放一些资源文件,还有一个webapp文件夹,用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用。选择右边红框的Enable-Auto-Import,可以在每次修改pom.xml后,自动的下载并导入jar包,这一点在后面详述。

注:如果这一步生成实在太慢的话,建议看一下以下两篇(感谢26楼 wintersun2 同学的提出):

文章1: http://www.cnblogs.com/beiyeren/p/4566485.html
文章2:http://blog.csdn.net/cleverlzc/article/details/50864582

四、Maven自动导入jar包

    既然我们要用SpringMVC开发,那肯定少不了SpringMVC的相关jar包。如果不使用Maven的话,那就需要去官网下载相关的jar包,然后导入到项目中。现在使用maven的话,就不需要上网找jar包了。具体容我一一道来。

    Maven所做的工作其实很简单,就是自动把你需要的jar包下载到本地,然后关联到项目中来。maven的所有jar包都是保存在几个中央仓库里面的,其中一个最常用的是Maven Repository,即,你需要什么jar包,它就会从仓库中拿给你。那么如何告诉maven需要什么jar包呢?我们看看工程目录,能找到一个pom.xml文件(这个文件在刚创建好项目时就已经展现在了大家面前),maven就是靠它来定义需求的,代码如下:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.gaussic</groupId>
    <artifactId>springmvcdemo</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>springmvcdemo Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>springmvcdemo</finalName>
    </build>
</project>

    我们可以看到这个文件包含了我们之前定义的本项目的gropId等信息,这些信息是该项目的标识,我们不要去改动它们。重点看<dependencies>标签,翻译过来是”依赖“的意思,也就是说把对每个包的需求都称为一个依赖<depedency>,定义在<dependencies>中。在每个<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version这三个必要信息。比如上面我们看到引入可一个junit包,格式如下:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
</dependency>

    这是单元测试包,提供了三个基本信息,第4个scope对其他包来说是非必需的。所有jar包的引入都要满足这个格式。那么如何查看这些jar包的3个信息呢,可能刚接触是开发者还不是很熟悉,这个时候就需要查阅仓库了。比如我们需要引入Spring核心jar包spring-core,打开Maven Repository搜索spring-core,进入如下界面:

    点击进入红框选中的Spring Core,如下所示,可以看到各版本的使用情况:

   选择最新版本4.2.5.RELEASE,可以看到其dependency写法如下红框所示:

   我们将其复制到pom.xml中的<dependencies>中:

    这样,Maven就会开始自动下载jar包到本地仓库,然后关联到你的项目中,下载完成后,我们展开工程目录中External Libraries:

    可以发现,虽然我们只写了一个依赖,但是它导入了两个jar包,也就是说,导入某个jar包时,与它密切相关的jar包也会同时被导入进来。

    除了spring-core,我还要spring-context,复制spring-core的<dependency>,将spring-core改为spring-context,如下:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.2.5.RELEASE</version>
</dependency>

    下载完成后,查看External Libraries,会不会发现,瞬间导入了好多jar包(当然不是瞬间,这得看你的网速了)呢:

    这就是Maven的强大之处,如果你需要使用SpringMVC开发网站的话,只需记住几个重要的包的名字,就可以轻松将所有包导入项目中。

    长话短说,现在我们要进行SpringMVC的开发,请把你的pom.xml变成下面的样子,当然不要改你的grupId等信息(从modelVersion到url都不要动):

<properties>
    <spring.version>4.2.6.RELEASE</spring.version>
    <hibernate.version>5.1.0.Final</hibernate.version>
</properties>

    请在<dependencies>中加入以下依赖:

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>1.10.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>

将<build>改成如下形式:

    <build>
        <finalName>springmvcdemo</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    

我们可以发现,除了导入了spring相关jar包,还有一些其他的包,这些包都是有作用的,我们后面慢慢说。如果不使用Maven请自行下载spring、hibernate、mysql、jstl等相关jar包然后导入到工程中。至此,jar包的导入就完成了,我们按 ctrl+alt+shift+s,或者File->Project Structure查看一下项目结构,看看有什么问题:

    由于之后我们要开始写代码了,先做一些配置,选择Modules,在SpringMVCDemo的src\main文件夹中新建一个文件夹,取名为java:

   选中java文件夹,点击上面的Make as:Sources,该文件夹就会变成蓝色,用以保存java代码,按OK,结束配置。

(另开一文,见使用Intellij IDEA来发SpringMVC网站(二))。

转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生)。

© 著作权归作者所有

共有 人打赏支持
Gaussic
粉丝 404
博文 28
码字总数 66971
作品 0
宝山
私信 提问
加载中

评论(41)

J
JAVA小喵
请问下楼主,我按你的配置web.xml的时候,导入servlet会报红是怎么回事啊 ?<servlet>
<servlet-name>mvc-dispatcher</servlet-name>(servlet-name标签名为红色,提示标签名不能出现在这里)
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>(servlet-class标签名为红色,提示标签名不能出现在这里)
<load-on-startup>1</load-on-startup>(load-on-startup标签名为红色,提示标签名不能出现在这里)
</servlet>
TK-Xiong
TK-Xiong
到下一篇结束都没有说...加这么多包是干嘛的...
mysql之类的我还能理解,除了Spring之外的其他的呢?
对乙酰氨基酚
对乙酰氨基酚
<properties>
<spring.version>4.2.6.RELEASE</spring.version>
<hibernate.version>5.1.0.Final</hibernate.version>
</properties>

搞定了。。。。
对乙酰氨基酚
对乙酰氨基酚
<properties>
<spring.version>4.2.6.RELEASE</spring.version>
<hibernate.version>5.1.0.Final</hibernate.version>
</properties> 这个应该 放在什么地方 放在 POM 里 不行啊?

还有我之前报的错 在MAVEN 的setting里面 添加了 你简书 网站上的
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
构建成功了 ,建议你也应该放在这里。
对乙酰氨基酚
对乙酰氨基酚
maven-metadata.xml 总是报找不到这个XML 错误 怎么解决。百度google各种方法都试了 都不好用 这问题 整了2天也没弄好
对乙酰氨基酚
对乙酰氨基酚
"C:\Program Files\Java\jdk1.8.0_51\bin\java" -Dmaven.multiModuleProjectDirectory=C:\Users\Administrator\AppData\Local\Temp\archetypetmp -Dmaven.home=F:\apache-maven-3.3.9 -Dclassworlds.conf=F:\apache-maven-3.3.9\bin\m2.conf -Dfile.encoding=UTF-8 -classpath F:\apache-maven-3.3.9\boot\plexus-classworlds-2.5.2.jar org.codehaus.classworlds.Launcher -Didea.version=2016.3.2 -DinteractiveMode=false -DgroupId=ggg -DartifactId=gggg -Dversion=1.0-SNAPSHOT -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=RELEASE org.apache.maven.plugins:maven-archetype-plugin:RELEASE:generate
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata.xml
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-archetype-plugin/maven-metadata.xml from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path bui
我心依旧_wxyj
使用eclipse环境,项目会有问题吗。
E
Eleclable
感谢楼主高质量文章 清晰明了 看得我享受
留在白镇
留在白镇
好文,向楼主学习
x
xsttt1234
另感谢楼主提供教程,支持一个~
使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理

转载请注明出处:Gaussic 。 注:在阅读本文前,请先阅读: 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 使用IntelliJ IDEA开发S...

Gaussic
2016/03/18
0
59
使用IntelliJ IDEA开发SpringMVC网站(四)用户管理

转载请注明出处:Gaussic 。 注:在阅读本文前,请先阅读: 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 使用IntelliJ IDEA开发S...

Gaussic
2015/10/05
0
95
聊聊Spring boot2.X开发环境搭建和基本开发

对Spring Boot的开发环境进行搭建,并对它的特点做进一步的了解,才能更好地对Spring Boot有更深入的介绍。但是无论如何都需要先来搭建Spring Boot的工程。 搭建Spring Boot开发环境 使用Spr...

异步社区
2018/08/06
0
0
使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

转载请注明出处:Gaussic。 注:在阅读本文前,请先阅读: 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 访问GitHub下载最新源码:...

Gaussic
2015/10/04
0
96
使用IntelliJ Idea新建SpringBoot项目

简单给大家介绍一下我来创建SpringBoot项目使用的工具,本人使用IntelliJ Idea来创建项目,利用其中的Spring Initializr工具来快速创建项目。 步骤如下: 菜单栏中选择File--New--Project,出...

dalaoyang
2018/03/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
0
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
2
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部