前言

本篇记录利用Maven快速建立Spring程序。


Spring简介

简介

Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核。

优势

  • 方便解耦,简化开发

    通过 Spring 提供的 IoC容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

  • AOP 编程的支持

    通过 Spring的 AOP 功能,方便进行面向切面编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松实现。

  • 声明式事务的支持

    可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高开发效率和质量。

  • 方便程序的测试

    可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。

  • 方便集成各种优秀框架

    Spring对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的支持。

  • 降低 JavaEE API 的使用难度

    Spring对 JavaEE API(如 JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些 API 的使用难度大为降低。

项目建立

说明:

  • IDEA:2020.1
  • JDK:1.8
  • Maven:3.6.1

建立

  • 打开IDEA,新建空工程

  • 打开并设置pom.xml文档,导入Spring开发的基本包坐标

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>

    <name>spring_project</name>
    <groupId>org.example</groupId>
    <artifactId>spring_project</artifactId>
    <version>1.0-SNAPSHOT</version>

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

    </project>

    注意在导入坐标依赖后需要刷新maven项目

  • 编写Dao接口和实现类

    项目结构如下:

    编写接口UserDao

    1
    2
    3
    public interface UserDao {
    public void save();
    }

    编写接口实现类UserDaoImpl

    1
    2
    3
    4
    5
    6
    7
    import dao.UserDao;

    public class UserDaoImpl implements UserDao {
    public void save() {
    System.out.println("save running....");
    }
    }
  • /src/main/resources目录下创建Spring核心配置文件

    一般命名为applicationContext.xml(也可以任意取名)

  • 在Spring配置文件中配置UserDaoImpl

    applicationContext.xml

    1
    2
    3
    4
    5
    6
    7
    8
    <?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">

    <bean id="userDao" class="dao.impl.UserDaoImpl"></bean>

    </beans>
  • 最后测试,使用Spring的API获得Bean实例

    /src/main/java目录下创建demo文件夹,其中创建UserDaoDemo用于测试:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import dao.UserDao;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    public class UserDaoDemo {

    public static void main(String[] args) {
    ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
    UserDao userDao = (UserDao) app.getBean("userDao");
    userDao.save();
    }

    }

    说明:

    1. 通过bean的id来获取xml配置文件中配置的<bean>class类的对象
    2. 由于Spring反射new出来的对象是Object类型,所以需要强制转换为UserDao类型
  • 点击运行,可以正常创建userDao对象并使用定义的save()方法

至此,完成了Spring项目的快速创建。


后记

Maven Repository官网:Maven Repository: Search/Browse/Explore (mvnrepository.com)