Spring概念

框架:
所谓的框架,就是别人写好的代码,我们直接拿过来用就行,但是框架都是一些半成品,需要我们去配置之后才能实现一些具体功能

Spring:是个世界级流行框架,单词直译是春天的意思,比喻为程序员的春天

为什么需要使用Spring (好处):
1,Spring可以帮我们降低耦合度
2.可以帮我们控制事务
3.非侵入式设计轻量级框架
4.可以与大多数框架集成
5.Spring提供JavaEE一站式服务(一条龙: dao,service,servlet…)
6.支持AOP
7.方便程序的测试

Spring中的常见术语(黑话):
1.应用程序 就是我们写的项目
2.框架 能完成一定功能的半成品
3.非侵入时设计 无需继承框架内的类,就能实现功能,后期很方便修改为其他框架
4.轻量级与重量级 轻量级与重量级都是相对应的,并没有非常固定的标准,但是一般非侵入式框架都是轻量级的,反之则是重量级
5.bean(pojo,model)有的Java对象都可以称呼为JavaBean
6.容器 用来装Java的东西

Spring的常用组件:
SpringContext 上下文支持
SpringAop
SpringBeans
SpringTest
SpringData
SpringJDBC
SpringCore

Spring的常见版本:
2.5 支持jdk1.4
3.x 不支持jdk1.4
4.x 开始支持jdk1.8
5.x

IOC的概念:
控制反转(Inversion of Control)简称为IOC,是面向对象编程的一种设计原则,可以用来降低代码之间的耦合度,其中最常见的实现方式是DI(依赖注入).

控制反转:
之前的所有对象都是由我们在程序之中手动new出来的,而使用Spring之后我们所有的对象都由Spring容器去创建,我们需要的时候只需要在容器中获取即可(反转创建对象的权利).

依赖注入:
Spring在创建对象的过程中,将对象中所依赖的属性注入到对象之内(给创建对象赋值)

使用Spring之后,我们不需要在代码中去维护对象的依赖关系,所有关系都在配置文件或注解中完成,Spring会在创建对象的过程中根据我们的配置去设置对象的依赖关系

JUnit:单元测试,可以让我们的普通方法跟main方法一样可以运行
JUnit的方法要求:
1.必须无参
2.必须public修饰
3.必须没返回值

Spring实例化对象的4中方法:
一.构造器实例化(最常使用).
(1).默认调用无参构造器(与访问修饰符无关)
(2).如果类中没有无参构造,则可以在bean标签中使用 constructor-arg调用有参构造方法.
二.静态工厂实例化(了解即可)
三.实例工厂实例化(了解即可)
四.实现FactoryBean接口实例化(了解即可)
(1).由其他框架使用,哪个框架的对象想交给Spring管理,那就实现Spring的这个接口就好

Spring在Bean中的作用域:(主要控制对象是否单例)
在Spring中默认创建的bean都是单例的,如果想改变的话可以在标签中使用scope属性来改变
singleton(单例):所有创建出来的对象都是单例的
prototype(多例):每一次取出的对象都是全新的
request(请求):用于web开发,每一次请求都会创建一个全新的对象(一次请求获取N次都是同一个对象)
session(会话):用于web开发,每一次会话都会创建一个全新的对象
globalSession:用于分布式

SpringBean的生命周期(对象的创建与销毁)
Spring再创建|销毁对象的时候我们可以在xml中指定其在创建|销毁对象时调用了哪些初始化方法,以及销毁方法init-method=“init” destory-model=“close”
在创建对象的时候会执行init-method中的方法,容器关闭时销毁对象的时候会执行destroy-method的方法,多例的对象Spring容器不负责销毁.

ApplicationContext 与 BeanFactory的关系:
BeanFactory:ioc容器的最底层根接口,负责了对象的管理,创建,销毁等功能
ApplicationContext:继承了BeanFactory接口,除了可以管理对象以外,还支持国际化,消息机制,AOP,资源加载等很多其他的功能

Spring创建对象的时机:
ApplicationContext:默认在加载xml文件的时候就创建了所有的对象(不包括实现FactoryBean接口),可以在bean标签中使用lazy-init=“true”,来让对象延迟加载,(什么时候get这个对象,什么时候创建)
BeanFactory: 默认什么时候getBean 什么时候加载对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郑要做干饭人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值