利用 Maven 構建 Spring 項目入門(Hello World!)

1. 前言:

   maven 的安裝、配置等知識其他博客已經寫得很完善了,這裏只介紹一下作爲一個菜鳥的我放開始學 maven 並 用 Maven 構建 Spring 項目的小 demo 及我遇到的一些小錯誤。

2. Maven的pom文件

   因爲Maven是基於項目對象模型(Project Object Model,POM)的概念運作的,所以Maven的項目都有一個pom.xml文件用來管理項目的依賴以及項目的編譯等功能。

2.1 dependencies元素
<dependencies>
</dependencies>

此元素包含項目需要依賴使用的多個<dependency></dependency>

2.2 dependency元素

  <dependency></dependency>內部通過groupId、artifactId、version確定唯一的依賴,可以稱這3個爲座標。
  groupId:組織的唯一標識。

  artifactId:項目的唯一標識。

  version:項目的版本。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.6.RELEASE</version>
</dependency>
2.3 properties元素

<dependency> </dependency>可以定義變量在dependency中引用,代碼如下所示:

<properties>
    <java.version>1.8</java.version>
    <spring-framework.version>4.3.18.RELEASE</spring-framework.version>
</properties>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring-framework.version}</version>
</dependency>
2.4 編譯插件

Maven提供了編譯插件,可在編譯插件中設置Java的編譯級別,代碼如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

3 IDEA 新建一個 Spring 項目,後續轉爲Maven項目(新建項目時不是Maven項目)。

3.1 IDEA 新建 spring 項目

File ----> New ----> Project -----> spring ----> 兩個地方打勾,看圖片 ----> Next ----> 填 Project Name -----> 選 Project Location -----> Finish
Alt
在這裏插入圖片描述
在這裏插入圖片描述
項目結構:
在這裏插入圖片描述
項目建好之後在 WEB-INF 下新建一個 lib 文件夾 (Dictionary),將 Spring 的 幾個基礎包複製到 lib 目錄中,併發布到類路徑下。
我用的相關 jar 包:
鏈接:https://pan.baidu.com/s/11w-wLbXeRK5s_4eU87EHmw
提取碼:4ffo
在這裏插入圖片描述
IDEA 發佈包到類路徑下:選中要發佈的包名 -----> 右鍵 ----> Add as Library
在這裏插入圖片描述

3.2 寫相應代碼輸出 “Hello World!”

(1)src 右鍵----> 新建一個包(package)----> 填入包名:learn.spring.demo ----> ok
在這裏插入圖片描述
(2) 在 learn.spring.demo 包下創建一個藉口 UserDao,然後在接口中定義一個 say() 方法。

package learn.spring.demo;

public interface UserDao {
    public void say();
}

(3)在 learn.spring.demo 包下創建 UserDao 接口的實現類 UserDaoImpl,該類需要實現接口中的 say() 方法,並在方法中編寫一條輸出語句。

package learn.spring.demo;

public class UserDaoImpl implements UserDao {
    public void say(){
        System.out.println("userDao say hello World!");
    }
}

(4)在 src 下創建 Spring 的配置文件 applicationContext.xml, 並在配置文件中創建一個 id 爲 userDao 的 Bean 。
src ----> 右鍵 -----> New ----> Xml Configuration file ----> spring config -----> 輸入配置文件名字:applicationContext -----> ok
在這裏插入圖片描述
applicationContext.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"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 將指定類配置給 Spring, 讓 Spring 創建其對象的實例 -->
    <bean id="userDao" class="learn.spring.demo.UserDaoImpl"  />
</beans>

(5)在 learn.spring.demo 包下,創建測試類 TestIoc,並在類中編寫 main()方法。代碼如下:

package learn.spring.demo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestIoc {
    public static void main(String [] args){
        //1. 初始化 spring 容器,加載配置文件
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2. 通過容器獲取 userDao 實例
        UserDao userDao = (UserDao)applicationContext.getBean("userDao");
        //3. 調用實例中的方法
        userDao.say();
    }
}

執行程序控制臺輸出:
在這裏插入圖片描述
項目結構:
在這裏插入圖片描述

3.3 轉爲Maven項目

(1)把 lib 下面的 jar 刪除。
(2)項目右鍵 ----> Add Framework Support ----> maven -----> ok。
(3) 把配置文件 applicationContext.xml 移到 resource 下面。
(4)把 pom.xml 中 改成自己的。
(5)配置 pom.xml 文件,把 原本 lib 目錄中的 jar 包配置到 pom.xml 中,內容如下:

<?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>SpringMaven02</groupId>
    <artifactId>SpringMaven02</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <!--<dependency>
            <groupId>org.apache</groupId>
            <artifactId>commons-logging</artifactId>
            <version></version>
        </dependency>-->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>   
</project>

修改完 pom.xml 文件後,右下角有一個彈窗,選擇 Import Changes,稍等一下,maven 會自動下載項目所依賴的 jar 包
在這裏插入圖片描述

(6)運行 TestIoc 類中的 main()方法,控制檯輸出:
在這裏插入圖片描述
項目結構:
在這裏插入圖片描述

4 IDEA 新建一個 Spring 項目 ( maven 項目)

(1)File ----> New ----> Project -----> maven ----> Next ----> 填 GroupId -----> 填 ArtifactId ----> Next ----> 選擇 Project Location ----> Finish
Alt
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述(2)在 src 下新建 learn.spring.demo 包,並把上面的 UserDao類、UserDaoImpl 類 和 TestIoc類複製到 該包下面;
(3)把 applicationContext.xml 複製到 resource 目錄下面;
(4)把 上面 pom.xml 中的配置複製到本項目中的 pom.xml 中;
(5)配置 pom.xml 文件,把 原本 lib 目錄中的 jar 包配置到 pom.xml 中,內容如下:

<?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>spring.maven</groupId>
    <artifactId>demo1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
        <!--<dependency>
            <groupId>org.apache</groupId>
            <artifactId>commons-logging</artifactId>
            <version></version>
        </dependency>-->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

修改完 pom.xml 文件後,右下角有一個彈窗,選擇 Import Changes,稍等一下,maven 會自動下載項目所依賴的 jar 包
在這裏插入圖片描述

(5)運行 TestIoc 類中的 main()方法,控制檯輸出:
在這裏插入圖片描述
項目結構:
在這裏插入圖片描述

5 錯誤總結

5.1 groupId、artifactId、version 這三個東西一定要對,要不然 maven 找不到要需要的東西,我就是把 <version> </version> 弄錯了,導致一直不成功。

錯誤:<version>4.3.6</version>
正確:<version>4.3.6.RELEASE</version>

5.2 pom.xm 文件該正確了以後沒去點 IDEA 右下角的 Import Changes , Maven 沒有那個智能,你改好了它自動下載,得點擊一下去觸發下載或尋找。

修改完 pom.xml 文件後,右下角有一個彈窗,選擇 Import Changes,稍等一下,maven 會自動下載項目所依賴的 jar 包
在這裏插入圖片描述
項目源碼(github 地址):點擊我下載源碼,只有後面這個項目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章