学习框架——Spring

本文深入解析Spring框架的核心概念与优势,介绍其五大主要模块及功能,包括核心容器、Spring上下文、Spring AOP、Spring DAO和Spring ORM。此外,文章还详细阐述了Spring的配置方式及其发展过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习框架——Spring(找工作高薪就靠它)

登高必自卑,涉远必自迩

学习资源很多很多,只要你敢认真

学习准备(本文档以Spring 3.0 为基准)

学习框架——Spring(找工作高薪就靠它)

什么是Spring

学习框架——Spring(找工作高薪就靠它)

注:

分层 : JavaEE分层 来源 JavaEE规范体系结构

轻量级和重量级的概念划分轻量级和重量级的划分,主要看它使用了多少服务。使用的服务越多,容器为普通java对象做的工作也越多,必然会影响到应用的发布时间或者是运行性能。对于spring容器,它提供了很多服务,但是这些服务并不是默认为应用打开的,应用需要某种服务,还需要指明应用该服务,如果应用服务很少,如:只使用了spring核心服务,我们就可以认为此时应用属于轻量级应用,反之就属于重量级。目前EJB容器因为它默认为应用提供了EJB规范的所有服务,所以它属于重量级的。

spring作为容器,其实最重要的就是配置文件xml。

在里面创建好各种各样的bean,有属性注入的(注入字符串、list、map、set等集合)、

函数注入、对象注入(将一个bean通过ref引用注入到)等,这一步只是创建好了bean,但是还没有放到容器中,

要将其放到容器中才可以使用。容器有两种,分别是BeanFactory、上下文ApplicationContext。放入容器,

就是将配置文件xml加载进来,具体加载方式如下表,这个时候并没有创建bean实例,在getBean时才真正创建了bean实例。

Spring 发展

学习框架——Spring(找工作高薪就靠它)

为什么使用Spring

学习框架——Spring(找工作高薪就靠它)

Spring 优点

学习框架——Spring(找工作高薪就靠它)

Spring 体系结构

学习框架——Spring(找工作高薪就靠它)

从整体看这5个主要模块几乎为企业应用提供了所需的一切,从持久层、业务层到展现层都拥有相应的支持。

组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

每个模块的功能如下:

核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

Spring 核心技术

学习框架——Spring(找工作高薪就靠它)

spring最核心,最基础的概念是什么?

将spring类比java,java最核心,最基础的概念就是object了。

java中,所有的操作都是针对object的(基础类型除外),java中,一切皆对象,一切都是object。

类比下来,spring中最基础的概念是bean。

在spring中,所以的类都可以认为是一个bean。

(个人认为)在spring中的所有文件,都可以认为是注册了的bean和未注册的bean。

spring中所有操作都是针对bean的操作。

自然,spring的三大核心思想中操作的对象,也是bean。

Spring容器高层视图

学习框架——Spring(找工作高薪就靠它)

描述Spring容器,Bean配置信息、Bean实现类以及应用程序这4者的相互关系:

Spring启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,

然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。

Spring1.0仅支持基于XML的配置;

Spring2.0新增基于注解配置的支持,同时还对基于XML的配置进行优化和扩展,提供了多个命名空间;

Spring3.0新增基于Java类配置的支持,同时对原来的配置也进行部分优化。

不管是XML还是注解,它们都是表达Bean定义的载体,其实质都是为Spring容器提供Bean定义的信息,

表现形式上是将XML定义的东西通过类注解进行描述,Spring2.0开始引入基于注解的配置方式,在3.0时得到进一步完善。

Spring成功启动的三大要件分别是:Bean定义信息,Bean的实现类以及Spring本身,如果采用基于XML的配置,Bean定义信息和Bean实现类本身是分离的,

而采用基于注解的配置方式,Bean定义信息即通过在Bean实现类上标注的注解实现。

Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,

它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,

但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。

@Service用于标注业务层组件

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

之所以在@Component还提供这三个注解,是为了让注解类本身的用途清晰化

配置JavaConfig

学习框架——Spring(找工作高薪就靠它)

Spring---不同配置方式比较

学习框架——Spring(找工作高薪就靠它)

Spring---IOC

学习框架——Spring(找工作高薪就靠它)

IoC对编程带来的最大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。

应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,

被动的等待IoC容器来创建并注入它所需要的资源了。

IoC很好的体现了面向对象设计法则之一

—— 好莱坞法则:“别找我们,我们找你”;

即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。

Spring---IOC和DI

学习框架——Spring(找工作高薪就靠它)

学习框架——Spring(找工作高薪就靠它)

Spring---AOP

学习框架——Spring(找工作高薪就靠它)

AOP 实际上对 OOP 升级 ,AOP 是一种设计思想 ,SOA (面向服务的体系结构)是 AOP 升级

思想:采用横向抽取机制取代传统纵向继承的代码复用,基于代理, 完成对目标对象功能增强

AOP在实际开发中运用?

权限控制(方法级别),记录日志,缓存优化,性能监控,事物管理,,,

AOP---相关术语

学习框架——Spring(找工作高薪就靠它)

学习框架——Spring(找工作高薪就靠它)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值