Spring框架基础学习

一、基本概念

1.        Spring框架的核心模块:springframework-core,几乎所有的spring框架,都需要在核心库基础上来运行。

2.核心库-bean的知识
        作用:bean容器 - 存储bean对象 - 使用bean对象(和集合框架中的容器,非常类似        最重要的:存取)

3.使用spring容器以后:

  •         注册:创建一个bean对象,存储到容器中
  •         注入:从容器中取一个对象,注入到某个地方(某个对象的属性,方法参数)

4.说明:无状态的bean对象,就会使用容器来注册和注入。

  •         无状态的bean:是指属性不随场景发生变化
  •         有状态:属性随场景发生变化(比如,web开发,获取某个id的用户)。

二、springframework

1.总结:

2.从使用来说,创建一个spring,创建时就会自动的注册bean和注入bean

3.注册的方式:

        (1)默认单例模式的类注解:5个@Controller,@Service,@Repository,@Component,@Configuration
        (2)可以注册多的的方法注解——@bean方法注解

4.注入的方式:可以注入到属性或方法参数中
        @Autowired注解,使用在属性中

三、考点总结

1.@Autowired和@Resource的区别?

  • @Autowired是Spring框架提供的注解,@Resource是jdk提供的注解;
  • @Autowired必须在spring框架中使用(否则回报错),@Resource可以不在spring框架中使用(不会报错,但是是否能引用到某个资源,jdk不提供实现);
  • 显示指定某个bean,使用方式不同:@Resource(name="xxx")@Autowired结合@Qualifier。

2.同一个类型的Bean,如何正确注入到某个属性?

        spring注入方式,有根据类型注入,名称注入......

  •         类型注入:一个类型只能有一个bean 
  •         名称注入:一个类型有多个bean,但名称必须不同

        (1)名称注入+变量名绑定

        (2)名称注入+@Resource(name="xxx")

                                +@Autowired

                                +@Qualifier("xxx")

3.Bean名称重命名?

类注解的("Bean名称")

 

方法注解("Bean名称")也可以写成@Bean(name="Bean名称")

 4.注入有几种注入方式?

  • 属性注入@Autowired
  • 构造方法注入@Autowired

5.Spring容器(常见面试题)主要是对IoC设计模式的实现

        作用:(1)统一管理对象的整个生命周期;(2)组织对象间的依赖关系。

        使用的API:BeanFactory和ApplicationContext

        两种API之间的区别:

  1. BeanFactory是最底层的容器接口,只提供了最基础的容器功能:Bean 的实例化和依赖注入,并且使 用懒加载的方式,这意味着 beans 只有在我们通过 getBean() 方法直接调用它们时才进行实例化。
  2.  ApplicationContext(应用上下文)是BeanFactory的子接口,与 BeanFactory 懒加载的方式不同,它 是预加载,所以,每一个 bean 都在 ApplicationContext 启动之后实例化。
  3.  除了基础功能,还添加了很多增强:
  • 整合了Bean的生命周期管理
  • i18n国际化功能(MessageSource)
  • 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
  • 事件发布响应机制(ApplicationEventPublisher)

6.IoC/DI的理解?

6.1概念:

IoC (Inversion of Control) 即控制反转,是面向对象编程中的一种设计原则。主要是通过第三方IoC容器,对Bean对象进行统一管理,及组织对象之间的依赖关系。获得依赖对象的过程,由原本程序自己控制,变为了IoC容器来主动注入,控制权发生了反转,所以叫做IoC,控制反转。
IoC又叫做DI:由于控制反转概念比较含糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维 护对象关系),相对 IoC 而言,依赖注入实际上给出了实现IoC的方法:注入。所谓依赖注入,就是由 IoC容器在运行期间,动态地将某种依赖关系注入到对象之中。

6.1概念简述:通过IoC容器,来统一管理Bean及组织对象间的依赖关系,控制权发生了反转(程序自己控制=>容器控制)IoC和DI(dependency Injection)是从不同角度来描述的——IoC注重的是控制权发生反转而DI则注重组织对象间的依赖关系

6.2作用:依赖注入(DI)和控制反转(IoC)是从不同的角度的描述的同一件事情,就是指通过引入IoC容器,利用依赖关系 注入的方式,实现对象之间的解耦。

6.3实现方式:DI是IoC的实现方式之一。而DI 的实现方式主要有两种:构造方法注入和属性注入。(IOC的实现方式:DI是其中之一。DI的实现方式:构造注入;属性注入)

6.4实现原理:主要依赖反射及ASM框架码实现(字节码框架操作字节码更为高效,功能更强大)
反射:能够创建某个类(编译时不知道运行时才知道)
           获取某个类
           调用/获取属性、方法
ASM:可以做到和反射类似的事情,还有更多更强大的功能效率比反射更高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值