`

Spring简介和基础

阅读更多

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

 

  ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

  ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

  ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

  ◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

  ◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

  所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

 

具体来说spring有7个模块

spring核心容器

spring上下文

spring AOP

spring DAO

spring ORM

spring WEB

spring MVC

spring配置文件 applicationContext.xml(放置到WEB-INF下),格式如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="UserInfo" class="com.demo.bean.UserInfo">
<property name="id">
<value>233</value>
</property>
<property name="username">
<value>wxg123</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
</beans>

使用如下:

 ApplicationContext ctx=new FileSystemXmlApplicationContext("WebContent/WEB-INF/applicationContext.xml");
UserInfo userinfo=(UserInfo)ctx.getBean("UserInfo");
System.out.println(userinfo.toString());

 

 

控制反转(Ioc)Inversion of Control

即由容器来控制业务对象之间的依赖关系,而非传统方式中由代码直接控制,控制反转的本质是控制权由应用代码转到了外部容器,控制权的转移即是所谓的控制反转(Dont call us,we'll call you),控制权的转移带来的好处就是降低了业务对象之间的依赖程度,实现了解耦。

 

 

 

Ioc实现策略有2种:

依赖查找:通过容器的API来查找自己所依赖的资源和协作的对象。

依赖注入(DI Dependency Injection):设置值方法注入(通过get和set方法)、构造子注入(通过构造函数)

 

 

利用java反射机制实现Ioc容器

系统中通过引入实现了Ioc模式的Ioc容器。即可有Ioc容器来管理对象的生命周期、依赖关系等。

Spring中Ioc容器的实现方式

BeanFactory实现了Ico的模式,它是一个最高级的接口,是工厂设计模式的实现。它支持2个对象模型

单态模型(共享时使用)、原型模型(每个用户需要自己的对象时使用)

 

 

Ioc模式的优缺点

优点:高度的解耦,支持热插拔

缺点:生成一个对象的步骤变的复杂,基于反射来实现,效率上有些损耗、缺少重构的操作支持。

 

依赖注入DI类型

1:接口注入(具有侵入性,有局限性)

2:构造注入(可用)

3:设置注入(广用)

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    SpringBlade开发手册基础版

    SpringBlade开发手册基础版 SpringBlade是一个商业级项目升级优化而来的SpringCloud微服务架构,采用Java8 API重构了业务代码,完全遵循阿里巴巴编码规范。该手册主要讲解如何使用SpringBlade开发微服务系统平台,...

    spring boot用法简介及基础教程及特点阐述.txt

    spring bootspring boot用法简介及基础教程及特点阐述.txtspring boot用法简介及基础教程及特点阐述.txtspring boot用法简介及基础教程及特点阐述.txtspring boot用法简介及基础教程及特点阐述.txtspring boot用法...

    学习笔记:尚硅谷Spring6基础篇

    以下是Spring框架的主要模块及其简介: - **Spring Core**(核心容器):包含Spring框架的核心组件,如BeanFactory,它是工厂模式的实现,用于创建和管理对象的生命周期。 - **Spring Context**:建立在核心容器...

    Spring基础教学视频

    ### Spring基础教学视频知识点概述 #### 一、Spring框架简介 ...Spring作为Java领域的重要框架之一,在实际项目开发中有着广泛的应用,掌握其基础知识对于提升个人技术能力和职业发展都具有重要意义。

    SSH和Spring框架简介

    通过阅读"SSH框架简介.doc"和"Spring框架简介.doc",你可以深入理解这两个框架的工作原理、优缺点及应用场景,为你的Java开发之路打下坚实基础。在学习过程中,实践是关键,尝试创建小型项目,将理论知识转化为实际...

    Spring Cloud之一 Spring Cloud简介

    它所依赖的基础是Spring Boot框架,因为Spring Cloud是建立在Spring Boot之上的,所以理解Spring Boot是理解和使用Spring Cloud的前提。 Spring Cloud的出现是为了简化分布式系统的开发。在分布式系统中,服务的...

    Spring简介

    Spring主要项目,从配置到安全,从Web应用到大数据 - 无论您的应用程序需要什么样的基础架构,都有一个Spring项目可以帮助您构建它。从小处着手,只使用你需要的东西 - Spring是模块化的设计。 Spring指南 无论您...

    spring基础教程 spring基础教程

    Spring框架是Java开发中的核心组件,它为应用程序提供了一个全面的基础设施,支持bean的管理、依赖注入、AOP(面向切面编程...阅读"Spring基础教程.pdf",你将获得更详细的指导和示例代码,进一步提升你的Spring技能。

    Spring简介和入门

    通过IoC和AOP,Spring实现了组件的解耦和关注点的分离,让开发者可以更专注于业务逻辑,而不是环境配置和基础设施。此外,Spring还与其他开源框架(如Hibernate和Struts)很好地集成,构建了一个完整的Java开发生态...

    Java Spring入门简介

    综上所述,Spring入门涉及到的概念和知识点十分丰富,包括核心概念如IoC和AOP的深入理解,搭建开发环境,学习Spring框架结构,编写和运行第一个Spring程序,掌握IoC容器的使用,了解Bean的生命周期和配置细节,以及...

    01.Spring框架简介_spring_spring发展历程_

    Spring的主要目标是简化Java开发,通过提供一个全面的编程和配置模型,使得开发者能够更专注于业务逻辑,而不是基础设施代码。 **Spring的发展历程** Spring的诞生可以追溯到2003年,由Rod Johnson撰写的一本书...

    Spring Annotation简介一

    【Spring Annotation简介一】 在Java开发领域,Spring框架以其强大的功能和灵活性深受广大开发者喜爱。Spring Annotation是Spring框架中的一个重要特性,它极大地简化了配置,提高了代码的可读性和可维护性。这篇...

    spring framework 简介

    ### Spring Framework 简介 #### 一、Spring Framework 的独特之处 在众多J2EE框架中,Spring Framework 自2003年发布以来一直备受瞩目。与其他框架相比,Spring Framework 的独特之处在于: 1. **专注于管理业务...

    spring boot、spring cloud、spring boot Alibaba以及配套组件版本关系

    两者之间的关系是:Spring Boot简化了基础配置,而Spring Cloud则在此基础上增加了微服务架构所需的功能。 #### 三、Spring Boot Alibaba简介 - **Spring Boot Alibaba**:是由阿里巴巴开发并维护的一套基于Spring ...

    Spring基础教程.pdf

    #### 一、Spring框架简介与快速入门 - **Spring框架概述**:Spring框架是由Rod Johnson创建的一个开源框架,其目的是为了简化企业级应用的开发过程。Spring框架的核心特性包括依赖注入(DI)、面向切面编程(AOP)...

    Spring 相关jar包简介 (spring 的包)

    Bean工厂是Spring的核心,它负责创建、配置和管理对象,同时也支持AOP(面向切面编程)的基础结构。 2. **spring-beans.jar**:该jar包提供了Bean工厂的实现,包括XML配置解析、Bean定义、依赖注入等功能。XML配置...

    Spring Boot基础-Spring Tool Suite工具的安装

    ### Spring Boot基础-Spring Tool Suite工具的安装 #### 一、Spring Tool Suite (STS)简介 ...通过本文的学习,相信读者已经掌握了如何安装和使用STS的基本技能,为后续深入学习Spring Boot奠定了坚实的基础。

    Spring讲座+技术手册+简介

    这个"Spring讲座+技术手册+简介"的资源集合,显然是为了帮助初学者快速掌握Spring的核心概念和技术。 首先,"spring2.0-reference_final_zh_cn.chm"是一个中文版的Spring 2.0参考手册,对于初学者来说非常有价值。...

Global site tag (gtag.js) - Google Analytics