Spring框架入门知识总结





前言

最近有在看狂神的《Spring框架》的讲解,自己也有一些总结,分享给大家,对于刚接触java的小伙伴还是有一定帮助,具体的知识点我会详细总结,并分享给大家,谢谢哒。


提示:以下是本篇文章正文内容,下面案例可供参考



一、Spring是什么?

Spring是一个

二、spring核心模块

核心容器(Spring core)

核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提供给组件依赖。


Spring面向切面编程(Spring AOP)

Spring AOP直接将面向切面的编程功能集成到了Spring框架中,所以很容易的使Spring框架管理的任何对象支持AOP(Spring集成了所有AOP功能。通过事务管理可以使任意Spring管理的对象AOP化);

Spring AOP为基于Spring的应用程序中的对象提供了事务管理服务;

通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管集成到应用程序中。


JDBC和DAO模块(Spring DAO)

DAO(DataAccessObject)模式思想是将业务逻辑代码与数据库交互代码分离,降低两者耦合;

通过DAO模式可以使结构变得更为清晰,代码更为简;

DAO模块中的JDBC的抽象层,提供了有意义的异常层次结构,用该结构来管理异常处理,和不同数据库供应商所抛出的错误信息;

异常层次结构简化了数据库厂商的异常错误(不再从SQLException继承大批代码),极大的降低了需要编写的代码数量,并且提供了对声明式事务和编程式事务的支持;


Web模块(Spring Web)

此模块建立在SpringContext基础之上,提供了Servlet监听器的Context和Web应用的上下文;

对现有的Web框架,如JSF、Tapestry、Structs等提供了集成;

SpringWeb模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。


应用上下文(Spring Context)

是一个配置文件,向Spring框架提供上下文信息;

SpringContext模块继承BeanFactory类,添加了事件处理、国际化、资源装载、透明装载、以及数据校验等功能;
还提供了框架式的Bean的访问方式和企业级的功能,如JNDI访问,支持EJB、远程调用、继承模板框架、Email和定时任务调度等;

将需要管理的对象(Spring中我们都称之问bean)、bean之间的协作关系配置好,然后利用应用上下文对象加载进我们的Spring容器,容器就能为你的程序提供你想要的对象管理服务了


MVC模块(Spring Web MVC)

SpringWebMVC模块建立在Spring核心功能之上,拥有Spring框架的所有特性,能够适应多种多视图、模板技术、国际化和验证服务,实现控制逻辑和业务逻辑的清晰分离;

通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI;

Servlet控制器为应用程序提供了一个进行前-后端处理的中枢。一方面为输入数据的验证、身份认证、日志及实现国际化编程提供了一个合适的切入点;另一方面也提供了将业务逻辑从JSP文件剥离的可能;

业务逻辑从JSP页面分离后,JSP文件蜕变成一个单纯完成显示任务的东西,这就是常说的View;

而独立出来的事务逻辑变成人们常说的Model,再加上控制器Control本身,就构成了MVC模式​​​​​​​
 

三、Spring的特征

轻量——从大小与开销两方面而言Spring都是轻量的

控制反转——Spring通过一种称作控制反转IOC的技术促进了低耦合。

面向切面——Spring提供了面向切面编程的支持。

容器——Spring包含并管理应用对象的配置的生命周期

框架——Spring可以将简单的组件配置、组合成为复杂的应用。

MVC——Spring的作用是整合,但不仅仅限于整合,Spring框架可以被看成是一个企业解决方案级别的框架。

四、Spring的优点

1、Spring是一个开源免费的框架 , 容器 .

2、Spring是一个轻量级的框架 , 非侵入式的 .

3、控制反转 IoC , 面向切面 Aop 4、对事物的支持 , 对框架的支持



五、Spring的三大核心思想



1.AOP(面向切面编程)

AOP (Aspect Oriented Programming)意为∶面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

       1、AOP的执行流程

切面:拦截器类,其中会定义切点以及通知
切点:具体拦截的某个业务点。
通知:切面当中的方法,声明通知方法在目标业务层的执行位置,通知类型如下:

    前置通知:@Before 在目标业务方法执行之前执行
    后置通知:@After 在目标业务方法执行之后执行
    返回通知:@AfterReturning 在目标业务方法返回结果之后执行
    异常通知:@AfterThrowing 在目标业务方法抛出异常之后
    环绕通知:@Around 功能强大,可代替以上四种通知,还可以控制目标业务方法是否执行以及何时执行
 

实现方式:

1、使用spring提供的接口

2、使用注解实现切面

3、使用自定义切面类



2.IOC(控制反转)

控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有 人认为DI只是IoC的另一种说法。没有IoC的程序中 , 我们使用面向对象编程 , 对象的创建与对象间的依赖关 系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所 谓控制反转就是:获得依赖对象的方式反转了。

3.DI(依赖注入)

1.构造器注入

constructor:通过构造方法进行自动注入,spring会匹配与构造方法参数类型一致的bean进行注入,如果有一个多参数的构造方法,一个只有一个参数的构造方法,在容器中查找到多个匹配多参数构造方法的bean,那么spring会优先将bean注入到多参数的构造方法中。

2.set注入

通过set方法注入属性,那么spring会通过默认的空参构造方法来实例化对象,所以如果在类中写了一个带有参数的构造方法,一定要把空参数的构造方法写上(必须要有空参构造方法),否则spring没有办法实例化对象,导致报错。

3.属性注入

@Autowired(自动注入)修饰符有三个属性:Constructor,byType,byName。默认按照byType注入。

byName:被注入bean的id名必须与set方法后半截匹配,并且id名称的第一个单词首字母必须小写,这一点与手动set注入有点不同。
byType:查找所有的set方法,将符合符合参数类型的bean注入。

主要有四种注解可以注册bean,每种注解可以任意使用,只是语义上有所差异:

    @Component:可以用于注册所有bean
    @Repository:主要用于注册dao层的bean
    @Controller:主要用于注册控制层的bean
    @Service:主要用于注册服务层的bean
 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值