spring是目前使用最广泛,大家都知道的一个框架。从2003年开始到目前(2016年)已存在了13年,目前最新版本是4。
对我来说spring是使用最久的一个技术,有空的时候拿出来复习一下,温故而知新,也是很值得的。
spring创始人是Rod Johnson。于2003年兴起。简单说,Spring是一个分层的Java SE/EEFull-stack (一站式)轻量级开源框架。
spring是分层架构的,分层架构允许使用者选择使用哪一个组件。同时为为J2EE应用程序的开发提供框架。
spring使用基本的JavaBean完成以前只能由EJB完成的事情。
spring的核心是控制反转(IoC)和面向切面变成(AOP),简单讲,spring是一个分层的JavaSE / EEfull-stack(一站式)的轻量级开源框架(重量级如EJB)。
IoC(inversion of control)控制反转
让对象的创建不再使用new,对象的生命周期,和对象之间的关系的控制权由原来的业务对象手中转交给了容器。
DI(Dependency Injection)依赖注入
Ioc的一个重要特性是在系统运行时,动态的向某个对象提供它所需要的其它对象,这一点是通过DI实现的。
比如:A需要操作数据库,需要一个Connection对象。以前需要在A中编程获得一个Connection。有了Spring,只要告诉Spring A需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行中,Spring会在适当的时候创建一个Connection对象,然后像打针一样,注射给A。Spring可以通过JDK的反射实现DI。
AOP(Aspect-Oriented Programing)面向切面编程
使业务逻辑各个部分进行分离,耦合度降低,提高程序可重用性,提高开发效率。
AOP是Gof设计模式的延伸,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,提高代码的灵活性和可扩展性。Aop也是这种目标的一种实现。
AOP的代理的实现方式:JDK动态代理,CGLib字节码生成。
面向对象编程是将需求功能封装成相对独立且有自己行为的类中,依靠继承和多态建立彼此之间的关系。
面向切面就是,将不同对象中相同的功能抽取出来,封装在通用的类中,使原来的对象共享相同的行为。当功能发生改变时,只需要修改共享的行为。
Spring使用到的设计模式
1 静态工厂
BeanFactory就是一个静态工厂,根据传入的参数,动态创建一个类实例。
2 工厂方法
Spring管理的是一个工厂类,通过这个工厂类的方法创建类实例。
<bean id="random" class="example.RandomFactory" factory-method="createRandom" scope="prototype">
3 单例模式
使用singleton参数创建bean。spring默认的对象是singleton
4 适配器(Adapter)
spring的aop中,通过动态代理创建代理类,代理类定义了新的适配方法的接口。
5 代理(Proxy)
动态代理
6 观察者(Observer)
常用的是监听器的实现,比如ApplicationListener。
7 模板方法(Template Method)
JdbcTemplate
相关推荐
《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》这本书主要聚焦于Spring框架的核心架构和技术细节,帮助读者全面理解Spring的工作机制、设计理念以及实现方式。下面将根据书名及其描述来展开相关知识点。 ...
#### Spring Security工作原理 当保护Web资源时,Spring Security通过部署一系列的过滤器来实现。这些过滤器按顺序执行,共同构建起一套完整的安全防护体系。以下是几个关键过滤器及其作用: - **通道处理过滤器**...
本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一种元数据,允许程序员在源代码中嵌入信息,这些信息可以被...
总结,Spring的IoC和AOP特性为开发者提供了强大的工具来管理对象的生命周期和实现模块化的系统设计。通过IoC,我们可以更好地解耦组件,降低系统的复杂度;通过AOP,我们可以集中处理横切关注点,提高代码的可维护性...
本文主要探讨Spring整合Mybatis的底层原理和实现步骤,结合鲁班学院公开课笔记,深入理解这一过程。 首先,Dao层是数据访问层,它提供了Service层调用的接口,有时甚至可以作为一个独立的项目。在Spring整合Mybatis...
总结来说,Spring中注解的实现原理涉及到元注解的定义、注解处理器的运行、BeanDefinition的生成以及AOP和事务管理的注解处理。这些机制使得Spring能够在不依赖XML的情况下,提供灵活、高效且易于维护的框架功能。...
总结,Spring的IOC原理是通过控制反转和依赖注入来降低对象间的耦合,提升系统的可扩展性和可维护性。它提供了一种高效的方式来管理和组合对象,使得开发者可以专注于业务逻辑的实现,而非对象的创建和管理。
SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、...在学习过程中,分析提供的源代码和示例将有助于深入理解SpringSecurity的工作原理,并能帮助你在实际项目中有效地应用这些知识。
在本篇文章中,我们将深入探讨Spring注入原理,特别是注解方式的实现,帮助你更好地理解和掌握这一技术。 ### 1. 依赖注入(Dependency Injection) 依赖注入是Spring的核心特性,它允许我们解耦组件间的依赖关系...
Spring注解驱动开发第33讲——AOP原理总结
理解这些核心知识点有助于深入理解Spring的工作原理,优化配置,以及实现自定义扩展。通过源码学习,开发者可以更好地掌握Spring如何管理和创建Bean,以及如何利用注解进行组件扫描,这对于解决复杂问题和提升性能...
### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...
在这个总结中,我们将详细介绍 Spring Security3 的安全机制、原理和核心组件。 认证管理器 认证管理器是 Spring Security3 的核心组件之一,负责处理用户的认证请求。认证管理器将用户名和密码与系统中的用户信息...
总结,通过学习和使用mini-spring,开发者可以逐步掌握Spring的核心原理,并能够将其应用到实际的快应用或企业级项目中,提升开发效率和软件质量。对于Java开发者来说,理解和掌握Spring框架无疑是提升自身技术能力...
**Spring Security 概述** Spring Security 是一个强大的且高度可定制的身份验证和访问控制框架,用于保护基于 Java 的应用...理解其工作原理并掌握源码分析对于任何想在Java应用中实现安全控制的开发者都至关重要。
总结来说,Spring Multipart的工作原理主要包括:利用Apache Commons FileUpload解析multipart请求,将上传文件转换为MultipartFile对象,然后在服务器端进行处理和保存。开发者可以通过Spring MVC提供的API方便地...
### 实现原理 1. **Bean工厂(Bean Factory)** Spring通过Bean工厂来管理对象,它是Spring的核心。Bean工厂负责创建对象,维护对象之间的关系,并进行初始化和销毁操作。 2. **XML配置** 在早期版本的Spring中,...
在这个“狂神说”系列的Spring源码总结中,我们可以深入理解Spring的核心概念和实现机制。 1. **依赖注入(DI)与控制反转(IoC)**:Spring的核心特性是依赖注入,它通过反转应用程序对对象的控制权,使得对象的创建和...