利用 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 地址):点击我下载源码,只有后面这个项目

发布了142 篇原创文章 · 获赞 44 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_40916641/article/details/103666830
今日推荐