Spring第一章笔记(2020)

Spring第一章笔记

Spring框架的基本原理分析

Spring是一个开源的容器框架,Spring可以接管Web层,业务层,Dao层,持久层组件。主要负责创建Bean以及维护Bean之间的关系。
Spring核心组件:IOC(控制反转)、AOP(面向切面编程)。

一、 IOC(Inversion of control): 控制反转
1、IOC:
概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系
核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean

二、AOP(Aspect-Oriented Programming): 面向方面编程
1、 代理的两种方式:
静态代理:
 针对每个具体类分别编写代理类;
 针对一个接口编写一个代理类;
动态代理:
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类

搭建Spring项目

1.加载依赖

在这里插入图片描述

2.在resources中新建配置文件

文件名官方推荐------applicationContext.xml
新建方式:在resources右击->New->XML Configuration File->Spring Config然后会出现
在这里插入图片描述
一定要点击Configure application context,然后选择create new application context

3.创造对象

创建对象的四种方式:(一定要有get/set方法)
1)用无参的构造方法创建对象
2)用带参的构造方法创建对象
3)用静态工厂创建对象(static)
4)用非静态工厂创建对象

在这里插入图片描述在这里插入图片描述

4.依赖注入

IOC/DI(依赖注入)的实现方式:
1)使用set方法注入依赖
2)使用带参的构造方法注入依赖
3)使用p命名空间方法注入依赖(本质还是set注入),要添加 xmlns:p=“http://www.springframework.org/schema/p”
4)使用spel表达式注入依赖(调用其他对象的属性值)
5)复杂类型的注入:1.注入对象 2.注入数组 3.注入集合 4.注入Map实例
在这里插入图片描述 在这里插入图片描述

5.测试类

在这里插入图片描述

关于Spring的面试题

1、Spring是什么?

    Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。

主要由以下几个模块组成:

Spring Core:核心类库,提供IOC服务;

Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);

Spring AOP:AOP服务;

Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;

Spring ORM:对现有的ORM框架的支持;

Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;

Spring MVC:提供面向Web应用的Model-View-Controller实现。

2、Spring 的优点?

(1)spring属于低侵入式设计,代码的污染极低;

(2)spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性;

(3)Spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。

(4)spring对于主流的应用框架提供了集成支持。

3、Spring的IoC理解:

(1)IOC就是控制反转,是指创建对象的控制权的转移,以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用。DI依赖注入,和控制反转是同一个概念的不同角度的描述,即 应用程序在运行时依赖IoC容器来动态注入对象需要的外部资源。

(2)最直观的表达就是,IOC让对象的创建不用去new了,可以由spring自动生产,使用java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象,并调用对象的方法的。

(3)Spring的IOC有三种注入方式 :构造器注入、setter方法注入、根据注解注入。

IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成可重用的功能组件。

4、BeanFactory 接口和 ApplicationContext 接口有什么区别 ?

①ApplicationContext 接口继承BeanFactory接口,Spring核心工厂是BeanFactory,BeanFactory采取延迟加载,第一次getBean时才会初始化Bean, ApplicationContext是会在加载配置文件时初始化Bean。

②ApplicationContext是对BeanFactory扩展,它可以进行国际化处理、事件传递和bean自动装配以及各种不同应用层的Context实现

开发中基本都在使用ApplicationContext, web项目使用WebApplicationContext,很少用到BeanFactory

5、Spring基于xml注入bean的几种方式:

1)Set方法注入;

2)构造器注入:①通过index设置参数的位置;②通过type设置参数类型;

3)静态工厂注入;

4)实例工厂;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值