`

Spring基本用法(一)

 
阅读更多

一、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接口耦合在一起。因此如不是特别必要,建议不要直接访问容器。

  • 大小: 35.9 KB
  • 大小: 8.9 KB
  • 大小: 93.1 KB
分享到:
评论

相关推荐

    spring的使用方法

    在Spring MVC中,处理请求的基本单位是Controller接口,它定义了一个名为handleRequest的方法,返回一个ModelAndView对象,包含了视图名称和模型数据。虽然Controller接口很基础,但在实际应用中,通常会使用如...

    spring最基本jar

    这个“spring最基本jar”可能包含了Spring框架的基础组件,如Spring Core、Spring Beans、Spring AOP等,是学习和使用Spring框架的基础。理解并掌握这些知识点,能够帮助开发者有效地利用Spring框架构建高效、稳定的...

    spring安装基本包.zip

    总的来说,理解并掌握这些基本包的用法是学习和使用Spring的第一步。通过IoC和AOP,Spring能够帮助我们构建松耦合、易于维护的Java应用。在实际开发中,结合Spring Boot和其他相关技术,可以极大地提高开发效率和...

    实验一 Springioc基本操作.docx

    1. 创建项目和配置文件:在使用 Spring IOC 之前,需要创建一个项目并配置相关的依赖项。pom.xml 文件是 Maven 项目的核心配置文件,用于管理项目的依赖项。在 pom.xml 文件中,需要添加 Spring IOC 相关的依赖项,...

    Spring基本知识点教程+案例演示

    ### Spring基本知识点教程+案例演示 #### Spring框架简介 Spring框架是为了解决企业级应用开发的复杂性而诞生的一款轻量级Java平台框架。它最初由Rod Johnson创建,后来发展成为Spring源代码项目,该项目由Pivotal...

    Spring的基本配置

    本篇文章将详细探讨Spring的基本配置,帮助你深入理解如何在项目中设置和使用Spring。 一、Spring配置概述 Spring的配置方式主要有两种:XML配置和Java配置。早期,XML配置是主流,而现在,随着Spring Boot的兴起...

    编码剖析Spring装配基本属性的原理

    本文将深入探讨Spring装配基本属性的原理,帮助你更好地理解如何在代码中使用和配置这些属性。 首先,Spring装配的基本方式有两种:XML装配和基于注解的装配。XML装配是早期版本Spring的主要装配方式,通过`&lt;bean&gt;`...

    Spring 基础jar包

    Spring框架是Java开发中最常用的轻量级开源框架之一,它为构建企业级应用程序提供了一种模块化和简化的方法。Spring的基础jar包包含了运行Spring应用程序所需的核心组件,使得开发者能够快速搭建Spring环境并开始...

    一本很好的Spring好书和spring的API

    Spring API的CHM文件通常包含了Spring框架的所有类、接口和方法的详细文档,是开发者在编码过程中查找API用法的重要参考。通过这个文件,你可以了解Spring的核心组件,如IoC(Inversion of Control,控制反转)容器...

    spring第一个学习得例子

    Spring框架是Java开发中的核心组件...通过实践这个例子,你不仅会理解Spring的基本用法,还能掌握如何在实际项目中运用Spring框架,为后续深入学习Spring Data、Spring Security、Spring Cloud等高级主题打下坚实基础。

    spring MVC 基本应用

    这个项目很可能是用来演示 Spring MVC 的基本用法,包含了一个简单的 Controller、视图页面和配置文件。通过分析这些文件,你可以更好地理解 Spring MVC 的工作原理和配置方式。 总的来说,Spring MVC 提供了一种...

    spring-framework基本包

    Spring 框架是 JavaEE 开发中的一个核心组件,由 Rod Johnson 在其著作...通过这个“spring-framework基本包”,我们可以学习并掌握 Spring 框架的核心概念和使用方式,为开发高质量的 JavaEE 应用奠定坚实基础。

    spring第一次课笔记

    Spring框架是Java开发中广泛应用的一个开源...理解和掌握Spring框架的基本概念和用法,对于Java开发者来说至关重要。通过持续学习和实践,你将能够充分利用Spring的强大功能,构建出高效、可扩展和易于维护的软件系统。

    Spring教程 spring tutorial

    ### Spring框架概述 ...通过本教程的学习,您将能够掌握Spring框架的基本原理和使用方法,为进一步深入研究打下坚实的基础。无论是在构建简单的Web应用还是复杂的分布式系统,Spring框架都能够为您提供强大的支持。

    展示spring cloud的基本用法

    展示了spring cloud的基本用法。包括:1)一个基本的spring boot应用。2)分布式配置管理服务端。3)分布式配置管理客户端(微服务应用)。4)服务注册服务端。5)服务注册发现客户端(微服务应用)。6)实现spring ...

    Spring定时器TimerTask用法

    **Spring定时器TimerTask用法** 在Java世界中,`java.util.Timer` 和 `java.util.TimerTask` 是用于实现定时任务的基本工具,但它们在多线程环境中的表现并不理想,容易引发内存泄漏。Spring框架提供了更强大的定时...

    RestTemplate如何在Spring或非Spring环境下使用.docx

    `RestTemplate`提供了多种方法来覆盖HTTP的基本操作,如GET、POST、PUT和DELETE等。使用`RestTemplate`,开发者可以方便地设置请求头、参数、主体内容,以及处理不同类型的响应。例如,以下代码展示了如何使用`...

    spring笔记,基本使用,基本概念

    ### 一、Spring 基本概念 1. **依赖注入**:Spring 的核心特性之一,它允许组件之间的依赖关系在运行时由容器管理,而不是由组件自身硬编码。这样可以提高代码的可测试性和可维护性。 2. **Bean**:在 Spring 中,...

    spring-boot中文教程

    描述:Spring Boot中文文档是Spring Boot官方文档的中文翻译版,它包含了Spring Boot的基本介绍、快速入门、核心特性、高级特性等内容,可以帮助用户快速了解和掌握Spring Boot的使用方法和技巧。 Spring Boot是一款...

    spring security第一个项目

    首先,我们需要理解Spring Security的基本架构。它由四个主要组件组成:Filter Security Interceptor(过滤器安全拦截器)、Access Decision Manager(访问决策管理器)、Authentication Manager(认证管理器)和...

Global site tag (gtag.js) - Google Analytics