一、Spring的核心机制:依赖注入
依赖注入以配置文件管理Bean实例之间的耦合,让Bean实例之间的耦合从代码层次分离出来。依赖注入是一种优秀的解耦方式。
Spring IoC容器的3个基本要点:
①应用程序的各组件面相接口编程。面相接口编程可以将各组件之间的耦合提升到接口层次,从而有利于项目后期的扩展。
②应用程度的各组件不再由程序主动产生,而是由Spring容器来负责产生、并初始化。
③Spring采用配置文件、或Annotation来管理Bean的实现类、依赖关系,Spring容器则根据配置文件、利用反射来创建实例,并为之注入依赖关系
依赖注入有两种方式:设值注入和构造注入
①设值注入:程序中定义set方法(反射时调用),配置文件中配置其属性<property name="XXX" ref="XXXbeanid"/>
②构造注入:通过构造函数设置,配置文件中配置其构造函数的参数类型<constructor-arg index="0" ref="XXXbeanid"/>
构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。
建议采用以设值注入为主,构造注入为辅的注入策略。
二、Spring核心接口(主要用ApplicationContext)
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。
Application包括BeanFactory的全部功能,因此建议优先使用ApplicationContext。除非对某些内存非常关键的应用才考虑使用BeanFactory。
当系统创建ApplicationContext容器时,默认会预初始化所有的singleton Bean。也就是说,当ApplicationContext容器初始化完成后,容器中所有singleton Bean也实例化完成。这意味着:系统前期创建ApplicationContext时将有较大的系统开销,但一旦ApplicationContext初始化完成,程序后面获取singleton Bean实例时将拥有较好的性能。
三、ApplicationContext的事件机制
ApplicationContext的事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext的事件处理。
Spring提供如下几个内置事件:
要想定义自己的Event则只需定义一个继承ApplicationEvent的类,而要想实现自己的监听器则只需定义一个实现ApplicationListener接口的类(实现该接口必须实现如下方法:onApplicationEvent(ApplicationEvent event)每当容器内发生任何事件时,此方法都被触发),为Spring容器注册事件监听器,只需要在xml文件中配置该bean(监听器类)即可。
跟别的事件机制有点不同的地方是,程序可以主动调用ApplicationContext的publishEvent()方法来主动触发容器事件
ApplicationContext ctx =new ClassPathXmlApplicationContext("bean.xml"); EmailEvent ele=new EmailEvent(); ctx.publishEvent(ele);
通过bean反向访问容器,Spring提供两个接口:BeanFactoryAware和ApplicationContextAware,只要实现setBeanFactory和setApplicationContext方法即可得到,虽然这样让Bean拥有了访问容器的能力,但污染了代码,导致代码与Spring接口耦合在一起。因此如不是特别必要,建议不要直接访问容器。
相关推荐
在Spring MVC中,处理请求的基本单位是Controller接口,它定义了一个名为handleRequest的方法,返回一个ModelAndView对象,包含了视图名称和模型数据。虽然Controller接口很基础,但在实际应用中,通常会使用如...
这个“spring最基本jar”可能包含了Spring框架的基础组件,如Spring Core、Spring Beans、Spring AOP等,是学习和使用Spring框架的基础。理解并掌握这些知识点,能够帮助开发者有效地利用Spring框架构建高效、稳定的...
总的来说,理解并掌握这些基本包的用法是学习和使用Spring的第一步。通过IoC和AOP,Spring能够帮助我们构建松耦合、易于维护的Java应用。在实际开发中,结合Spring Boot和其他相关技术,可以极大地提高开发效率和...
1. 创建项目和配置文件:在使用 Spring IOC 之前,需要创建一个项目并配置相关的依赖项。pom.xml 文件是 Maven 项目的核心配置文件,用于管理项目的依赖项。在 pom.xml 文件中,需要添加 Spring IOC 相关的依赖项,...
### Spring基本知识点教程+案例演示 #### Spring框架简介 Spring框架是为了解决企业级应用开发的复杂性而诞生的一款轻量级Java平台框架。它最初由Rod Johnson创建,后来发展成为Spring源代码项目,该项目由Pivotal...
本篇文章将详细探讨Spring的基本配置,帮助你深入理解如何在项目中设置和使用Spring。 一、Spring配置概述 Spring的配置方式主要有两种:XML配置和Java配置。早期,XML配置是主流,而现在,随着Spring Boot的兴起...
本文将深入探讨Spring装配基本属性的原理,帮助你更好地理解如何在代码中使用和配置这些属性。 首先,Spring装配的基本方式有两种:XML装配和基于注解的装配。XML装配是早期版本Spring的主要装配方式,通过`<bean>`...
Spring框架是Java开发中最常用的轻量级开源框架之一,它为构建企业级应用程序提供了一种模块化和简化的方法。Spring的基础jar包包含了运行Spring应用程序所需的核心组件,使得开发者能够快速搭建Spring环境并开始...
Spring API的CHM文件通常包含了Spring框架的所有类、接口和方法的详细文档,是开发者在编码过程中查找API用法的重要参考。通过这个文件,你可以了解Spring的核心组件,如IoC(Inversion of Control,控制反转)容器...
Spring框架是Java开发中的核心组件...通过实践这个例子,你不仅会理解Spring的基本用法,还能掌握如何在实际项目中运用Spring框架,为后续深入学习Spring Data、Spring Security、Spring Cloud等高级主题打下坚实基础。
这个项目很可能是用来演示 Spring MVC 的基本用法,包含了一个简单的 Controller、视图页面和配置文件。通过分析这些文件,你可以更好地理解 Spring MVC 的工作原理和配置方式。 总的来说,Spring MVC 提供了一种...
Spring 框架是 JavaEE 开发中的一个核心组件,由 Rod Johnson 在其著作...通过这个“spring-framework基本包”,我们可以学习并掌握 Spring 框架的核心概念和使用方式,为开发高质量的 JavaEE 应用奠定坚实基础。
Spring框架是Java开发中广泛应用的一个开源...理解和掌握Spring框架的基本概念和用法,对于Java开发者来说至关重要。通过持续学习和实践,你将能够充分利用Spring的强大功能,构建出高效、可扩展和易于维护的软件系统。
### Spring框架概述 ...通过本教程的学习,您将能够掌握Spring框架的基本原理和使用方法,为进一步深入研究打下坚实的基础。无论是在构建简单的Web应用还是复杂的分布式系统,Spring框架都能够为您提供强大的支持。
展示了spring cloud的基本用法。包括:1)一个基本的spring boot应用。2)分布式配置管理服务端。3)分布式配置管理客户端(微服务应用)。4)服务注册服务端。5)服务注册发现客户端(微服务应用)。6)实现spring ...
**Spring定时器TimerTask用法** 在Java世界中,`java.util.Timer` 和 `java.util.TimerTask` 是用于实现定时任务的基本工具,但它们在多线程环境中的表现并不理想,容易引发内存泄漏。Spring框架提供了更强大的定时...
`RestTemplate`提供了多种方法来覆盖HTTP的基本操作,如GET、POST、PUT和DELETE等。使用`RestTemplate`,开发者可以方便地设置请求头、参数、主体内容,以及处理不同类型的响应。例如,以下代码展示了如何使用`...
### 一、Spring 基本概念 1. **依赖注入**:Spring 的核心特性之一,它允许组件之间的依赖关系在运行时由容器管理,而不是由组件自身硬编码。这样可以提高代码的可测试性和可维护性。 2. **Bean**:在 Spring 中,...
描述:Spring Boot中文文档是Spring Boot官方文档的中文翻译版,它包含了Spring Boot的基本介绍、快速入门、核心特性、高级特性等内容,可以帮助用户快速了解和掌握Spring Boot的使用方法和技巧。 Spring Boot是一款...
首先,我们需要理解Spring Security的基本架构。它由四个主要组件组成:Filter Security Interceptor(过滤器安全拦截器)、Access Decision Manager(访问决策管理器)、Authentication Manager(认证管理器)和...