1.BeanFactory与ApplicationContext
BeanFactory:提供IoC服务支持,默认采用延迟初始化策略(lazy-load),容器启动初期较快
ApplicationContext:间接继承自BeanFactory,提供其他高级特性:事件发布、国际化支持;容器启动时默认全部初始化并绑定完成。
2.Xml配置说明
<beans> xml配置文件最顶层元素
<description> 描述信息
<import> 加载所依赖的配置文件
<alias> 别名
<bean id="" class="" name="别名,可以使用id不能使用的字符,且可以指定多个别名,逗号隔开">
3.构造方法注入xml
<bean id="" class="">
<constructor-arg type="int" index="0">
<value>1</value>
</constructor-arg>
<constructor-arg type="String" index="1" value="2"/>
</bean>
4.setter方法注入xml
确保注入对象提供默认的构造方法
<bean id="" class="">
<property name="注入对象所对应的实例变量名">
<value>1</value>
</property>
<property name="注入对象所对应的实例变量名" ref="otherbean"/>
</bean>
5.<property>和<constructor-arg>中可用配置项
value、ref、bean、idref、null、list、set、map、props
<vale>:为主体对象注入简单的数据类型。是最底层元素,内部不能嵌套其他元素
<ref local="beanname"/>:只能加载同一配置文件中的对象
<ref parent="beanname"/>:只能指定位于当前容器的父容器中定义的对象引用。
<ref bean="beanname"/>:基本通吃
<idref bean="refbeanname"><==><value>refbeanname</value>:依赖对象的名称,不是引用.
内部<bean>:
<list>:对应注入对象类型为java.util.List及子类或者数组的依赖对象,可以有序地注入。
<property name="listname">
<list>
<value>11</value>
<ref bean="beanname">
<bean class="innerbean">
</list>
</property>
<set>:注入java.util.Set或者子类的依赖对象,无序。
<map>:注入java.util.Map或者子类的依赖对象。
<property name="valueMap">
<map>
<entry key="key1">
<value></value>
</entry>
<entry>
<key>key2</key>
<ref bean="someObject"/>
</entry>
<entry key="key1">
<value></value>
</entry>
<entry key-ref="lstkey"><!--key-ref:用于指定对象的引用作为键-->
<list>……</list
</entry>
<entry key="" value-ref=""/>
</map>
</property>
<props>:注入java.util.Properties的对象依赖
<property>
<props>
<prop key="url">url</prop>
</props>
</property>
<null/>:空元素,<value></value>:结果为"",不是Null
6.depends-on:容器初始化当前Bean时,会先实例化当前Bean定义所依赖的其他Bean,多个依赖关系是通过逗号隔开
<bean id="bean1" class="" depends-on="beanA,beanB"/>
7.autowire:指定当前Bean定义采用某种类型的自动绑定模式。提供5种模式:no、byName、byType、constructor、autodetect
no:不采用任何自动绑定模式,默认
byName:按照类中声明的实例变量的名称,与Xml配置文件中声明的Bean定义的beanName的值进行匹配。
public class Foo{
private Bar barAttr;
}
<bean id="fooBean class="..Foo" autowire="byName"/>
<bean id="barAttr" class="..Bar"/>
byType:容器根据当前Bean定义类型,分析其依赖对象类型到所有bean定义中寻找与依赖类型相同的bean。若找到多个相同类型Bean,返回错误,无法自动绑定。
constructor:针对构造方法参数自动绑定,与byType类似;而byName与byType针对property的自动绑定,
autodetect:是byType和constructor模式的结合体,如果对象拥有默认无参数的构造方法,容器优先考虑byType模式,否则constructor模式
8.dependency-check:对其所依赖的对象进行最终检查。4种类型:
none:不做依赖检查
simple:对简单属性类型以及相关的collection进行检查
object:只对对象引用类型依赖进行检查
all:simple和object结合
9.lazy-init: 主要对ApplicationContext容器的bean初始化行为施以控制。pplicationContext容器启动时马上对singleton的bean进行实例化。
分享到:
相关推荐
这篇"Spring学习笔记之一“why spring”"可能探讨了为何开发者会选择Spring作为他们的技术栈。让我们深入了解一下Spring框架的核心优势和特性。 首先,Spring是轻量级的。尽管它提供了众多功能,但核心容器(如IoC...
《我的Pro Spring 学习笔记 之一:Say Hello World in Spring Way》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用中占据主导地位。这篇学习笔记将引导我们踏入Spring的世界,通过一个简单的“Hello ...
### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...
依赖注入是Spring框架的核心特性之一,它允许开发者在运行时将对象及其依赖关系解耦。通过DI,组件不再直接创建它所依赖的对象,而是由容器负责创建和管理这些对象,并将它们注入到需要的地方。这有助于提高代码的可...
依赖注入是Spring的核心功能之一,它允许开发者在运行时动态地将依赖关系注入到对象中,而不是由对象自行创建或查找依赖。这样可以减少对象间的耦合,提高代码的可重用性和可测试性。 三、面向切面编程(AOP) ...
“Java Spring学习笔记”是一份宝贵的资源,专门为想要学习和掌握Java Spring框架的开发者而设计。这份学习笔记提供了详细而系统的教程和实践指南,帮助初学者快速入门,并带领已经有一定经验的开发者深入理解和应用...
Spring Cloud构建于Spring Boot之上,利用Spring Boot的开发便利性简化了分布式系统的开发。Spring Cloud的组件可帮助开发者快速搭建分布式系统中涉及的常见模式。 Spring Cloud的五大核心组件包括:Eureka、Ribbon...
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...
【SpringBoot核心特性】 SpringBoot是Spring框架的一个扩展,它旨在简化Spring应用程序的开发过程,...这份学习笔记涵盖了SpringBoot的基础特性和SpringCloud的负载均衡实践,对于深入理解这两个技术有极大的帮助。
2. **IoC(控制反转)**:Spring的核心特性之一是依赖注入(Dependency Injection,简称DI),它是控制反转的一种实现方式。DI允许我们不直接在类内部创建对象,而是通过配置文件或注解来管理对象及其依赖关系,降低...
标题和描述均提到了“spring指南学习笔记”,这意味着文档聚焦于Spring框架的学习心得与关键概念。Spring是一个开源的Java企业级应用框架,以其强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect ...
### Spring Boot 学习笔记知识点总结 #### 一、Spring发展史 - **Spring1.x时代**:在Spring1.x的时代,主要通过XML文件来配置Bean。随着项目的规模扩大,XML配置文件的数量也随之增加,这导致开发人员需要频繁地...
在《Spring Boot》源码学习笔记中,我们可以深入理解其内部工作机制,包括自动配置、起步依赖、命令行接口(CLI)以及如何集成各种组件如JSP等。JSP(JavaServer Pages)是一种用于动态创建网页的技术,Spring Boot ...