Spring Framework Documentation-Core Technologies

2024-01-14 15:58

本文主要是介绍Spring Framework Documentation-Core Technologies,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 

这部分参考文档讲解了Spring框架绝对必要的组成部分。

在这之中最重要的就是spring框架的控制反转(IoC)容器。彻底处理好IoC容器之后,对面向切面编程(AOP)技术的掌握将必不可少。Spring框架有自己的AOP框架,这个框架在概念方面很容易理解,并且成功解决了j2ee中80%的AOP需求。

Spring对AspectJ的集成在本文也有讲到。AspectJ是j2ee领域对AOP最成熟也是特性最丰富的实现。

  • 1.IOC容器

1.1.对Spring IOC容器和beans的介绍

本章讲解了Spring框架的实现和控制反转的规则。控制反转也被理解成依赖注入(DI)。这是一些对象定义其依赖的过程。这种依赖,是这些对象需要调用的其他对象。定义这些依赖要么通过构造函数参数传递来实现,要么通过工厂方法参数传递来实现,再或者是先通过构造方法或者工厂方法产生实例,然后通过设置对象的实例的一些属性来实现。在创建bean的时候,Spring IoC容器会注入这些依赖。这是根本意义上的反转,也就是所谓的控制反转:这个过程原来是bean自己使用类的直接构造函数或者类似于“Service Locator pattern”的机制来控制自己的初始化和依赖内容的定位。

org.springframework.beans和org.springframework.context这两个包是Spring框架IoC容器的基础。前者中的BeanFactory接口提供了能够管理任何类型对象的先进的配置机理。ApplicationContext是BeanFactory接口的一个子接口。它针对Spring的AOP特性增加了更加可用的集成:信息资源处理(在国际化中的使用)、时间发布、应用层确切的上下文例如专门提供给web 应用的WebApplicationContext接口。

简而言之,BeanFactory接口提供了配置框架和基本的功能而ApplicationContext接口又提供了更多针对企业开发的功能。ApplicationContext是BeanFactory的一个完全意义上的超集,在本章我们只使用ApplicationContext进行讨论。想要只用BeanFactory的更多用法自己去看文档(The BeanFactory.)吧。

在Spring的项目中,那些在你的应用中处于“脊梁骨”级别并且收录在Spring IoC容器中管理的对象被称作bean。一个bean是指一个被Spring IoC容器初始化、组装、管理的对象。但是从另一个角度看,bean只是你所开发的应用中众多对象中的一个。beans和它的依赖与容器所使用的“配置元数据”相互映照。

1.2 容器概览

org.springframework.context.ApplicationContext这个接口代表了IoC容器,负责完成前面所提到的bean的初始化、配置和装配。容器通过读取配置元数据来获取对哪些类进行初始化、配置和装配的指令。配置元数据在xml、java注解或者java代码中体现。配置元数据使你能够表示那些组成你的应用的对象和它们之间丰富的相互依赖关系。

Spring中有几个随取随用的ApplicationContext的实现。在独立应用中,创建一个 ClassPathXmlApplicationContext或者FileSystemXmlApplicationContext的示例很常见。尽管xml是定义配置元数据的传统格式,但是只要提供少量xml配置来声明使用附加的元数据格式,你也能够通过注解和java代码作为元数据来对容器发出指令。

在大多数应用场景中,并不需要具体的用户代码来实例化一个或者多个Spring IoC容器例如,在一个web应用场景中,应用中的web.xml文件中只需要一个大概8行的模板web descriptor XML语句就足够满足创建容器的需求。如果你正在使用装备了Spring工具套装了eclipse开发环境,那你仅仅只需要动几下鼠标和键盘就能够生成一个上面的模板配置。

下面的图表在一个很高的层次展示了Spring是怎么工作的。你的应用中的java 类通过配置元数据被结合到一起。因此在ApplicationContext被创建和初始化之后,你就得到了一个完全配置好的可执行的系统或者应用。

 

1.2.1配置元数据(Configuration metadata)

正如前面的图表所示,Spring IoC容器会用到某种格式的配置元数据;这个配置元数据会展示你作为开发者想要Spring容器如何初始化、配置、装配你的应用中的对象。

配置元数据通常是通过简单直观的xml格式来提供的,这也是本章用来讲述Spring IoC容器关键概念和特性的配置元数据格式。

注:XML并不是配置元数据的唯一格式。Spring IoC容器本身和配置元数据的书写形式完全解耦。最近很多开发者选择基于Java代码的配置形式来开发应用。

想要使用其他的元数据格式,可以参考以下链接:

Annotation-based configuration(基于注解的配置):Spring 2.5引入了基于注解的配置元数据。

Java-based configuration(基于java的配置):从Spring 3.0起,许多由Spring JavaConfig项目提供的特性被引入了Spring框架。因此你可以在的项目代码之外通过java语言而不是XML语言来定义beans(配置元数据中的定义信息)。要使用这些新特性,参见@Configuration@Bean@Import@DependsOn这些注解。

Spring的配置至少包含一个但是一般不止一个将要给容器处理的bean的定义。基于XML的配置元数据使用包含在<beans/>元素中的<bean/>元素来配置这些beans。基于java的配置元数据通常在一个包含注解@Configuration的java类中使用@Bean注解配置bean。

这些配置与实际构成你的应用的对象相对应。通常你会定义服务层对象、数据访问层对象、展示层对象例如Struts的Action 实例,框架对象例如Hibernate的SessionFactories,JMS Queues,等等。通常我们不会在容器中配置domain对象,应为创建和装载domain对象通常是dao对象和业务逻辑的事情。但是,使用集成了AspectJ的Spring框架,你将能够配置在IoC容器控制范围之外创建的对象,详情参见Using AspectJ to dependency-inject domain objects with Spring。

下面的例子展示了基于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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="..." class="..."><!-- collaborators and configuration for this bean go here --></bean><bean id="..." class="..."><!-- collaborators and configuration for this bean go here --></bean><!-- more bean definitions go here --></beans>

这里的id属性是用来区分不同的bean定义的。class定义了bean的类型,必须使用完全规范化的类名。id属性的值可以引用合作的对象。id引用合作对象的xml在本例中并没有显示;参见Dependencies来获取更多信息。

 

  • 2.资源
  • 3.验证、数据绑定和类型转化
  • 4.Spring表达语言
  • 5.使用Spring面向切面编程
  • 6.Spring AOP的API
  • 7.Null的安全问题
  • 8.数据缓存和编码

 

这篇关于Spring Framework Documentation-Core Technologies的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/605718

相关文章

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、