歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

IntelliJ IDEA上創建Maven Spring MVC項目

IntelliJ IDEA上創建Maven Spring MVC項目


IntelliJ IDEA上創建Maven Spring MVC項目


目前java開發主流的IDE有eclipse系列和IntelliJ IDEA系列的。IDEA號稱是最好用的收費的Java IDE,用了一段時間感覺比eclipse要方便不少。由於網上大多數的教程都是基於eclipse的,或者是低版本的idea,所以有以下這篇博客,在 IntelliJ IDEA上創建maven Spring MVC項目,可以給一些剛入門的一個參考。
IntelliJ IDEA版本圖

各軟件版本

  • IntelliJ IDEA 2016.1
  • jdk1.8
  • maven3.0.5
  • tomcat或jetty

idea和maven的基本使用這裡就不細講了。有需要請移步idea入門教程同時也包含了maven的相關知識.

利用maven骨架建立一個webapp

  • 選擇create new project-Maven-Create from archetype。找到maven-archetype-webapp這個骨架,然後next。
  • 輸入GroupId和ArtifactId後下一步。
    填寫maven信息
  • 填寫本地的maven環境,這裡可以選擇自己本地的環境,也可以用idea自帶的maven3.0.5。配置相應的配置文件,idea自帶的maven是沒有配置文件的,需要單獨配置的可以在相應的目錄中添加setting.xml文件,例如需要配置jdk版本或者maven mirror的。
    填寫本地的maven環境
    由於maven骨架和一些jar需要去maven的倉庫下載,所以創建項目的時候速度會非常慢(外國的服務器你懂得),因此我們可以直接訪問http://repo1.maven.org/maven2/archetype-catalog.xml,把這個xml下載下來放到本地的maven目錄中,然後在添加一個參數archetypeCatalog=internal就可以了。
  • next 填寫項目名稱,finish即可。

建立相應的目錄

項目創建完成後,src-main下建立java目錄後,是無法在該目錄下創建新的包和java類等文件的。在idea中需要對目錄進行標注。
IntelliJ IDEA上創建Maven Spring MVC項目

  • 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)

標注完後,建立如下的目錄。
IntelliJ IDEA上創建Maven Spring MVC項目

配置Maven和SpringMVC

配置Maven的pom.xml

完整的配置文件如下。

<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.example</groupId>
    <artifactId>maven-springmvc</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>maven-springmvc 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>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
        </dependency>

        <!--j2ee相關包 servlet、jsp、jstl-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.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

        <!--mysql驅動包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>

        <!--spring相關包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.1.RELEASE</version>
        </dependency>

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

    <build>
        <finalName>maven-springmvc</finalName>
        <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>
        <plugins>
            <!--servlet容器 jetty插件-->
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.3.10.v20160621</version>
            </plugin>
        </plugins>
    </build>
</project>

更新完pom.xml文件後,idea應該會自動下載相應的jar包(可能需要vpn),如果沒有自動下載的話,可以點擊“Reimport All Maven Projects”按鈕進行項目的重新載入。如圖所示。
IntelliJ IDEA上創建Maven Spring MVC項目
jar下載完成後,所有項目所需的依賴就已經添加完成了。

配置web.xml

maven默認生成的web.xml版本是2.3的,所以有些配置節點idea會識別不出來,因此我們重新添加一個3.0的。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
           version="3.0">
    <!--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>
            <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>

接收到的http請求通過DispatcherServlet進行分發。

配置contextConfigLocation文件

<?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.zjut.ssm.controller">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--HandlerMapping 無需配置,springmvc可以默認啟動-->

    <!--靜態資源映射-->

    <mvc:resources mapping="/resources/**" location="/resources/"/>

    <!-- 配置注解驅動 可以將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/view/"/><!--設置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>

配置log4j.properties

日志文件是debug中一個必不可少的工具,因此添加了log4j日志包。配置文件如下。

#配置根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

controller和view的編寫

在controller下新建一個“HomeController”。編寫如下代碼。

package com.zjut.ssm.controller;

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

/** * @author Chingyu Mo * @create 2016-07-23-20:20 */
// 注解標注此類為springmvc的controller,url映射為"/home"
@Controller
@RequestMapping("/home")
public class HomeController {
    //添加一個日志器
    private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

    //映射一個action
    @RequestMapping("/index")
    public  String index(){
        //輸出日志文件
        logger.info("the first jsp pages");
        //返回一個index.jsp這個視圖
        return "index";
    }
}

在views文件夾下建立一個jsp文件,名為“index.jsp”

基本的代碼編寫就完成了。

servlet容器的配置和運行

servlet容器有兩種配置方式。

  • 配置本地的tomcat服務器
  • 配置maven插件

配置本地的tomcat服務器

IntelliJ IDEA上創建Maven Spring MVC項目
根據上圖配置tomcat服務器,如果用這種方法,本地需要下載tomcat並配置好環境變量。
IntelliJ IDEA上創建Maven Spring MVC項目
主要有以下幾個要點

  • 1.選擇本地的tomcat容器。
  • 2.可以選擇修改訪問路徑。
  • 3.On Update action 當我們按 Ctrl + F10 進行容器更新的時候,可以根據我們配置的這個事件內容進行容器更新。其中我選擇的 Update classes and resources 事件是最常用的,表示我們在按 Ctrl + F10 進行容器更新的時候,我們觸發更新編譯的類和資源文件到容器中。
  • 4.默認 Tomcat 的 HTTP 端口是 8080,如果你需要改其端口可以在這裡設置。
  • 5.在 Deployment 選項卡中添加了 Artifact。

配置maven插件

maven插件的話有tomcat和jetty,兩者都是servlet的容器。我這裡配置的是jetty。插件已經在pom.xml中配置完成了。

 <plugins>
            <!--servlet容器 jetty插件-->
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.3.10.v20160621</version>
            </plugin>
        </plugins>

再在idea中配置jetty。
IntelliJ IDEA上創建Maven Spring MVC項目

運行第一個Spring MVC應用

點擊Run,運行。

以上就是一個簡單的Spring MVC應用在idea中的創建方式。

使用IntelliJ IDEA 13搭建Android集成開發環境圖文教程

IntelliJ IDEA 12 創建Web項目圖文詳細教程

用IntelliJ IDEA開發Android程序圖文教程

IntelliJ IDEA 12開發haXe NME應用配置指南

IntelliJ IDEA運行Play Framework的test mode

Ubuntu 13.04 安裝IntelliJ IDEA 12

IntelliJ IDEA 12創建Maven管理的Java Web項目(圖解)

IntelliJ IDEA 常用快捷鍵列表及技巧大全   

IntelliJ IDEA 的詳細介紹:請點這裡
IntelliJ IDEA 的下載地址:請點這裡

本文永久更新鏈接地址:

http://xxxxxx/Linuxjc/1147425.html TechArticle

Copyright © Linux教程網 All Rights Reserved