美文网首页Java 极客营 L2资料
【Spring5.0】学习目录(一)

【Spring5.0】学习目录(一)

作者: IT职业与自媒体思考 | 来源:发表于2020-05-26 21:35 被阅读0次

Spring框架的两个核心功能:

- Spring容器作为超级大工厂,负责创建,管理所有的Java对象,这些对象被称为Bean。

- Spring容器管理容器中Bean之间的依赖关系,

  Spring使用一种被称为“依赖注入”的方式来管理Bean之间的依赖关系。

- Spring容器作为超级大工厂,负责创建,管理所有的Java对象,这些对象被称为Bean。

- Spring容器管理容器中Bean之间的依赖关系,

  Spring使用一种被称为“依赖注入”的方式来管理Bean之间的依赖关系。

Spring容器常用接口

ApplicationContext:BeanFactory 的子接口,该接口的实现类:

ClassPathXmlApplicationContext:用于搜索加载类路径下的配置文件

FileSystemXmlApplicationContext:用于搜索加载相对路径或绝对路径下的配置文件

Spring的核心机制:依赖注入

A对象调用B对象被Spring称为依赖,即A对象依赖B对象。假如A组件调用了B组件的方法,即可称A组件依赖B组件。

Ioc控制反转:调用者主动获取被依赖对象变为被动接受Spring容器为调用者的成员变量赋值(依赖注入)。

设值注入:IoC容器使用成员变量的setter方法来注入被依赖对象。

Spring<bean />的子元素<property />

用于执行JavaBean的setter方法

name:用于执行哪一个setter方法

value或ref:用于传入setter方法的参数。value用于传入基本数据类型及其包装类,ref用于传入其他Bean。

构造注入:IoC容器使用构造器来注入被依赖对象。

Spring<bean />的子元素<constructor-arg />

index:用于指定作为第几个构造参数

type:用于指定构造参数的类型

value或ref:用于传入构造器的参数。value用于传入基本数据类型及其包装类,ref用于传入其他Bean。

ApplicationContext的国际化支持

ApplicationContext接口继承了MessageSource接口,因此具有国际化功能。

String getMessage(String code, Object[] args, Locale loc)

String getMessage(String code, Object[] args, String default, Locale loc)

ApplicationContext的事件机制

ApplicationEvent:容器事件,必须由ApplicationContext发布

publishEvent():发布容器事件

ApplicationListener:监听器,可由容器中的任意监听器Bean担任。

Spring 容器中的Bean

Bean的基本定义和Bean别名

id:确定该Bean的唯一标示,如果Bean的标识必须包含一些特殊符号,此时可以采用name属性,用于指定Bean的别名。通过访问Bean别名也可以访问Bean实例。

class:指定该Bean的具体实现类,这里不能是接口 。

<alias name="" alias="" />指定别名

容器中Bean的作用域(scope)

singleton:单例模式。singleton作用域内的Bean将只生成一个实例。

prototype:每次通过getBean()获取prototype作用域内的Bean时,都将生成一个新的Bean实例。

request:对于一次HTTP请求,只生成一个实例。

session:对于一次HTTP回话,只生成一个实例。

application:对于整个Web应用,只生成一个实例。

websocket:在整个WebSocket的通信过程中,只生成一个实例。

使用自动装配注入合作者Bean

<beans .../>元素的default-autowire属性指定,所有的Bean起作用。

<bean .../>元素的autowire属性指定,只对该Bean起作用。

autowire、default-autowire属性可以接收如下值:

no:不使用自动装配。必须通过ref元素定义。

byName:根据setter方法名与Bean的id进行匹配。

byType:根据setter方法的形参类型来自动装配。

Spring提供的Java配置管理(注解)

@Configuration:用于修饰一个Java类

@Bean:用于修饰一个方法,将该方法的返回值定义成一个Bean

@Value:用于修饰一个Field,用于为该Field配置一个值,相当于配置一个变量。

使用AnnotationConfigApplicationContext(AppConfig.class)创建Spring容器。

<bean class="AppConfig" />加载配置类

@ImportResource("classpath:/beans.xml")加载配置文件

创建Bean的3种方式

调用构造器创建Bean

调用静态工厂方法创建Bean

调用实例工厂方法创建Bean

获得Bean本身的id

通过实现BeanNameAware接口的setBeanName()方法

容器中Bean的生命周期

注入依赖关系之后

使用init-method属性

实现InitialzingBean接口

即将销毁Bean之前

使用destory-method属性

实现DisposableBean接口

协调作用域不同步的Bean

<lookup-method name="" bean="" />

高级依赖关系配置

获取其他Bean的属性值

PropertyPathFactoryBean调用其他Bean的getter方法:

调用哪个对象:setTargetObject(Object targetObject)

调用哪个getter方法:setPropertyPath(String propertyPath)

<util:property-path.../>简化配置:

id:指定将getter方法的返回值定义成名为id的Bean实例。

path:指定哪个Bean实例,哪个属性暴漏出来。

FieldRetrievingFactoryBean获取Field值

MethodInvokingFactoryBean获取方法返回值

基于XML Schema的简化配置方式

使用p:命名空间来驱动执行setter方法 (设值注入)

使用c:命名控件来驱动执行构造器方法 (构造注入)

util:命名空间简化constant,property-path、list,set,map,properties

aop:命名空间简化Spring AOP

jee:简化Spring的Java EE配置

jms:简化Spring关于JMS的配置

lang:简化Spring动态语言

tx:简化Spring事务配置

Spring提供的表达式语言(SpEL)

相关文章

网友评论

    本文标题:【Spring5.0】学习目录(一)

    本文链接:https://www.haomeiwen.com/subject/borbahtx.html