Spring 体系结构、环境配置、入门案例

Spring 体系结构、环境配置、入门案例

      • 1. Spring 体系结构
      • 2. Spring 环境配置
        • 2.1 安装 Java 开发工具包(JDK)
        • 2.2 安装 Apache Commons Logging API
        • 2.3 安装 Spring 框架库
      • 3. Spring 入门案例
        • 3.1 创建项目
        • 3.2 添加依赖库
        • 3.3 编写源文件

1. Spring 体系结构

  • Spring 是什么?
    Spring 是当前主流的 Java Web 开发框架。
    Spring 是由 Rod Johnson 组织和开发的一个分层的 Java SE/EE full-stack(全栈)轻量级开源框架,以IoC(Inversion of Control 控制反转)和 AOP (Aspect Oriented Programming 面向切面编程)为内核,使用基本的 JavaBean 来完成以前只可能由 EJB(Enterprise Java Beans,Java 企业 Bean)完成的工作,取代了 EJB 的臃肿、低效的开发模式。
  • Spring 框架优点
    Spring具有简单、可测试、松耦合等特点,可用于服务器端开发、Java 应用开发。
    • 非侵入式设计。
    • 方便解耦、简化开发。
    • 支持 AOP。
    • 支持声明式事务处理。
    • 方便程序的测试。
    • 方便集成各种优秀的框架。
    • 降低 Java EE API 的使用难度。
  • Spring 体系结构
    分层架构,20个模块。
    Spring 体系结构、环境配置、入门案例_第1张图片
    • Core Container - 核心容器
      核心容器是其他模块建立的基础,由 Beans、Core、Context、Context-support、SpEL(Spring 表达式语言) 组成。
      • Beans :提供 BeanFactory 工厂模式的经典实现。
      • Core 核心:框架基本组成部分,包括 loC(Inversion of Control,即“控制反转”) 和 DI (Dependency Injection,即“依赖注入”)。
      • Context :建立在 Core 和 Beans 模块的基础之上, 是访问定义和配置的任何对象的媒介。其中ApplicationContext接口是上下文模块的焦点。
      • Context-support :提供对第三方库嵌入 Spring 应用的集成支持, 比如缓存(Eh Cache、Guava、J Cache) 、邮件服务(JavaMail) 、任务调度(Common J、Quartz) 和模板引擎(FreeMarker、JasperReports、速率) 。
      • SpEL :Spring 3.0+提供,Spring Expression Language支持,是运行时查询和操作对象图的强大的表达式语言。
        Spring 体系结构、环境配置、入门案例_第2张图片
    • Data Access/Integration - 数据集成访问
      包括 JDBC、ORM、OXM、JMS 和 Transactions 模块。
      • JDBC:抽象层,简化数据库操作。
      • ORM:对象关系映射API。
      • OXM:对象/XML映射的抽象层。
      • JMS:Java 消息传递服务。
      • Transactions :事务管理。
    • Web
      包括 WebSocket、Servlet、Web 和 Portlet 模块。
      • WebSocket:实现了 WebSocket 和 SockJS 以及对 STOMP 的支持。
      • Servlet:Spring-webmvc,MVC+REST Web Services。
      • Web:web开发继承,如多文件上传、Servlet 监听器初始化 IoC 和 Web 应用上下文
      • Portlet:Portlet 环境中使用 MVC 的实现
    • 其他模块
      包括 AOP、Aspects、Instrumentation 和 Test 模块。
      • AOP面向切面编程(允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性)。
      • Aspects:AspectJ 的集成功能,(AspectJ 是一个强大且成熟的 AOP 框架) 。
      • Instrumentation:类工具 + 类加载器。
      • Messaging:消息传递体系结构和协议的支持。
      • Test:单元测试、集成测试。

2. Spring 环境配置

2.1 安装 Java 开发工具包(JDK)

JDK环境搭建

2.2 安装 Apache Commons Logging API

下载最新版本:http://commons.apache.org/logging/ >> Download

解压二进制的发行版本到一个方便的位置。例如在 windows 上的 C:\commons-logging-1.2 中,确保在这个目录上正确的设置 CLASSPATH 变量,否则将会在运行应用程序时遇到问题。

确保在这个目录上正确的设置 CLASSPATH 变量,否则将会在运行应用程序时遇到问题。

2.3 安装 Spring 框架库

下载最新版本:https://repo.spring.io/release/org/springframework/spring/

下载 Spring 框架的二进制文件,在 Windows 上下载 .zip 文件,在 Unix 上安装则下载 .tz 文件。

如:spring-framework-5.2.6.RELEASE-dist.zip

解压后目录结构如下:

Spring 体系结构、环境配置、入门案例_第3张图片

在目录 E:\spring\libs 中发现所有的 Spring 库。确保在这个目录上正确的设置 CLASSPATH 变量。

3. Spring 入门案例

Eclipse 为例。

3.1 创建项目

第一步是使用 Eclipse 按 Ctrl + N 创建一个 Dynamic Web Project 项目,命名 TestSpring,如下所示:

Spring 体系结构、环境配置、入门案例_第4张图片

Spring 体系结构、环境配置、入门案例_第5张图片

3.2 添加依赖库

第二步将依赖库 jar 包拷入 WebContent > WEB-INF > lib 目录即可,如图:

Spring 体系结构、环境配置、入门案例_第6张图片

commons-logging-1.2.jar
spring-beans-5.2.6.RELEASE.jar
spring-context-5.2.6.RELEASE.jar
spring-core-5.2.6.RELEASE.jar
spring-expression-5.2.6.RELEASE.jar

3.3 编写源文件

src下创建包 com.spring.demo,并在包中创建接口 UserDao,定义一个 say()方法:

package com.spring.demo;
public interface UserDao {
	void say();
}

在 com.spring.demo 包下,创建 UserDao 接口的实现类 UserDaoImpl,并实现 say() 方法:

package com.spring.demo;
public class UserDaoImpl implements UserDao {
    @Override
    public void say() {
        System.out.println("Spring: UserDaoImpl say hello, spring!");
    }
} 

在 com.spring.demo 包下创建测试类TestDemo:

package com.spring.demo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDemo {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
       // 1.初始化 spring 容器,加载配置文件
       ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
       // 2.通过容器获取 userDao 实例
       UserDao userDao = (UserDao) applicationContext.getBean("userDao");
       // 3.调用实例中的 say() 方法
       userDao.say();
    }
}

步骤解析:

  1. 是使用框架 API ClassPathXmlApplicationContext() 来创建应用程序的上下文。这个 API 加载 beans 的配置文件并最终基于所提供的 API,它处理创建并初始化所有的对象,即在配置文件中提到的 beans。
  2. 是使用已创建的上下文的 getBean() 方法来获得所需的 bean。这个方法使用 bean 的 ID 返回一个最终可以转换为实际对象的通用对象。一旦有了对象,就可以使用这个对象调用任何类的方法。
  3. 调用类中的方法。
  • 第 4 步:创建 bean 配置文件

需要创建一个 Bean 的配置文件,该文件是一个 XML 文件,通常保存该文件的名称为 beans.xml 文件。

beans.xml 用于给不同的 bean 分配唯一 ID,并控制不同值的对象的创建,而不会影响 Spring 的任何源文件。

当 Spring 应用程序被加载到内存中时,框架利用了该配置文件来创建所有已经定义的 beans,并且按照标签的定义为它们分配一个唯一的 ID。可以使用标签来传递在创建对象时使用不同变量的值。


<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"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   https://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
    https://www.springframework.org/schema/context/spring-context.xsd">

    
    <bean id="userDao" class="com.spring.demo.UserDaoImpl" />

beans>

标签中的链接内容是 Spring 的约束配置,来源为:
Spring 安装目录: spring/docs/spring-framework-reference/core.html
找到 1.9. Annotation-based Container Configuration 或搜索 “XML-based Spring configuration

  • 第 5 步:运行程序

在 TestDemo 中运行,快捷键 Alt+Shift+X 再按 J,控制台输出:

Spring: UserDaoImpl say hello, spring!

Spring 体系结构、环境配置、入门案例_第7张图片

你可能感兴趣的:(Spring,spring,java,spring,boot)