前言
本篇记录利用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开发的基本包坐标
<?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:
代码语言:javascript复制public interface UserDao {
public void save();
}
编写接口实现类UserDaoImpl:
代码语言:javascript复制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:
<?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用于测试:
代码语言:javascript复制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();
}
}
说明:
- 通过bean的id来获取xml配置文件中配置的<bean>的class类的对象
- 由于Spring反射new出来的对象是Object类型,所以需要强制转换为UserDao类型
- 点击运行,可以正常创建userDao对象并使用定义的save()方法
至此,完成了Spring项目的快速创建。
后记
Maven Repository官网:Maven Repository: Search/Browse/Explore (mvnrepository.com)