Spring概述

Spring是一个容器。

Spring的主要功能就是为代码解耦,降低代码的耦合度。

根据功能的不同,可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类。

主业务逻辑代码逻辑间联系紧密,有具体的专业业务应用场景,复用性较低;系统级业务代码相对功能独立,主要为业务提供功能性服务,如日志,安全,事物等。

Spring根据代码的功能性特点,将降低耦合度的方式分为了两类:IOC和AOP。IOC使得主业务在相互调用的过程中,即不用再自己创建要使用的对象了。而是由Spring容器统一管理,自动注入。AOP使得系统级服务得到了最大程度的复用,且不用再有程序员手工将系统服务混杂到主业务逻辑中了,而是由Spring统一完成织入。

问题一:ApplicationContext与Beanfactory容器的区别
这两个容器对于其中bean的创建时机不同。
1.ApplicationContext容器在进行初始化的时候,会将其中所有的Bean(对象)进行创建。
缺点:占用系统资源(内存cpu等),优点:响应速度快
2.Beanfactory容器中的对象,在容器初始化的时候,并不会被创建,而是在真正获取该对象时才被创建。
缺点:相对来说,响应速度慢。优点:不多占用系统资源。
Bean的默认装配方式
代码通过getbean()的方式从容器中获取指定的bean实例,容器会首先调用bean的无参构造器,
只要给出了带参构造器,你一定要给他无参构造器
Spring的动态工厂bean
factory-bean指定相应工厂bean,factory-method指定创建所用方法。此时配置文件中至少有两个bean,一个是工厂类的bean,一个是工厂要创建的目标类的bean


Spring的静态工厂bean
静态工厂无需创建工厂实例,不需要定义静态工厂,只需要指定所用工厂类。

容器中Bean的作用域
通过容器中的Scope属性,为Bean指定特定的作用域。
1.singleton:单态模式。整个Spring容器中,使用singleton定义的bean是单例的。
2.prototype:原型模式,bean实例是在代码中使用该bean才进行装配。
3.request:对于每一个Http请求,都将会产生一个不同的bean实例
4.session:对于每一个HttpSession请求,都会产生一个不同的bean实例。
5.global session:每个全局的HttpSession对应一个bean实例。

Bean后处理器

bean后处理器是一种特殊的bean,容器中的所有bean在初始化的时候,俊辉自动执行该类的两个方法,该bean是由其他bean自动调用执行。

在bean后处理类方法中,只要对Bean类中的方法进行判断,就可以实现对指定的bean的指定方法进行扩展与增强,方法返回的bean对象,就是增强过的对象。

bean初始化完毕的标志:一个方法被执行。

bean的生命周期


bean的id与name属性
这两个没区别,一般情况下,命名bean使用id属性,当bean中含有一些特殊字符的时候,就可以使用name属性了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值