Spring核心概念

一、Spring概述

Spring 是最受欢迎的企业级 Java 应用程序开发框架,可用来创建性能好、易于测试、可重用的代码,用于开发任何 Java 应用程序。Spring框架能够充分利用其它框架的技术并与之融合,为系统实现提供最优解决方案。

二、Spring模块

Spring分层架构由7个模块组成,模块单独存在,也可以联合实现某种功能。

1、核心容器:

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

2、Spring 上下文:

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

3、Spring AOP:

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

4、Spring DAO:

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

5、Spring ORM:

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

6、Spring Web 模块:

Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
7、Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。
在这里插入图片描述

三、Spring的核心组件

Spring的核心组件包括两部分:IOC(控制反转)、AOP(面向切面编程)。

1、IOC(控制反转)

控制反转,把创建对象的权力和交给Spring容器,由容器来管理。避免多处使用某对象的时候A a = new A()的方式,太慢。
控制包含:对象的创建、属性复制、依赖关系、生命周期的管理
反转:把创建对象的权力和交给Spring容器,由容器来管理
原理:使用ApplicationContext,在启动的时候把所有的对象以“类名,对象”的方式放在一个map里,使用时用applicationContext.getBean(“类名”)的方式获取对象。

2、AOP(面向切面编程)

面向切面编程,对某一类方法进行增强,使用@Before/@After/@Around注解进行方法前/后/前后的增强,经常用于获取方法执行时长、异常捕获处理等。
连接点:不同的方法都是join point连接点,可以被选择来进行增强
切点:pointCut,对哪里进行增强,这是个标志(选择增强的方法),对一个地方进行切入逻辑称为“通知”:Advice
切面:Aspect,包括pointCut、Advice

IOC是AOP的基石。

四、新建Spring的工程的步骤:

1.引入jar包
2.编写web.xml
3.编写application.xml
4.部署tomcat

五、总结

Spring的作用:解耦,降低对象之间的关系。
缺点:jar包太多,名字根本记不住,xml文件里要写的内容太多,每要容器管理一个对象,都得往xml里插入一行配置。
基于以上缺点,Spring提供优化方案:注解。
类上加@Configuration,方法上加@Bean,意为:
本类是配置类,方法里返回的对象需要放入Spring容器,进行管理。
Spring的难点就在于:包依赖、bean注解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值