Spring基础

1.什么是Spring

Spring 是于 2003 年兴起的一个轻量级的Java 开发框架,创始人是Rod Johnson,它是为了解决企业应用开发的复杂性而创建的,随着时代的发展,spring旗下发展了很多项目,并且越来越多的开发者开始使用这些项目。spring的优点如下:
方便解耦,简化开发(高内聚低耦合),可以将对象依赖关系的维护交给Spring管理。
1 IOC(Inversion of Control)控制反转,对象的创建由spring完成,并将创建好的对象注入给使用者。
2.AOP(Aspect Orient Programming)编程的支持,面向切面编程,可以将一些日志,事务等操作从业务逻辑的代码中抽取出来,这样子业务逻辑代码就更加纯净了,并且可以增强日志和事务复用性。
3.声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程。
4.方便集成各种优秀框架,其内部提供了对很多优秀框架(如:Struts、Hibernate、MyBatis等)的直接支持。
5.非侵入式,spring的api不会在业务逻辑的代码中出现,倘若有一天项目不使用spring了,那么可以很方便的移植到其他框架上。

2.Spring容器和Spring的实例化的方法

1.Spring容器的简介

Spring容器中有BeanFactory和ApplicationContext两种类型,ApplicationContext继承自BeanFactory接口,拥有更多的方法,所以推荐使用ApplicationContext,实例化ApplicationContext有两种方法
1.通过ClassPathXmlApplicationContext加载配置实例化
2.通过FileSystemXmlApplicationContext加载配置并实例化
在这里插入图片描述

2.Bean的实例化

1.使用构造器实例化(90%使用)
2.使用静态工厂实例化
3.使用实例化工厂方法实例化
对象可以使用id或者name都可以
在这里插入图片描述

3.Spring中Bean的五个作用域

使用spring ioc容器为我们创建对象的时候,可以设定该对象的作用域,默认是单例的。

singleton: 单态模式。即在一个Spring ioc容器中,使用 singleton 定义的 Bean 是单例的,只有一个实例。默认为单例的。
prototype: 原型模式。即每次使用 getBean 方法获取的同一个bean的实例都是一个新的实例。
request:对于每次 HTTP 请求,都将会产生一个不同的 Bean 实例。
session:对于每个不同的 HTTP session,都将产生一个不同的 Bean 实例。
application:在一个web应用中会产生一个bean实例,就相当于在一个ServletContext中只有该bean的实例。
websocket:在一个websocket中会产生一个bean实例。

在这里插入图片描述

4.SpringIOC

控制反转(IoC,Inversion of Control),是一种思想。指的是将创建对象的操作权交给容器(例如spring,创建出来的对象会放到这个容器里面),通过容器来装配和管理对象的创建,控制反转其实就是对这些对象控制权的反转,控制权由程序本身反转给了外部容器。

不使用SpringIOC
在这里插入图片描述

使用SpringIOC

在这里插入图片描述
ioc是一种思想,有一些实现方式,其中较为常用的一种是依赖注入(Dependency Injection,简称DI),依赖注入是指程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。
依赖注入让 Spring 的Bean之间以配置文件的方式组织在一起,而不是以硬编码的方式耦合在一起。ioc的另外一个实现方式就是依赖查找,(Dependency Lookup,DL),这里不进行讨论了。
依赖注入的方式主要有两种
1.setter注入
通过调用无参构造器或者无参static工厂方法实例化bean以后,调用该bean的set方法就能实现setter注入
2.构造器注入
调用带参数的构造器实现,容器在Bean被实例化的时候,根据参数的类型,执行相对应的构造器
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值