博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java个人学习笔记:spring 容器
阅读量:5013 次
发布时间:2019-06-12

本文共 1751 字,大约阅读时间需要 5 分钟。

在xml文件中通过bean节点来配置bean

<bean id=”helloWordl” class=”com.cy.test.HelloWorld”></bean>

 

id:bean的名称

在ioc容器中必须是唯一的。

若id没有指定,spring自动将权限定性类名作为bean的名字。

id可以指定多个名字,名字之间用都好,分毫,或者空格分隔。

 

Spring IOC容器

在ioc容器读取bean配置创建bean实例之前。必须对它进行实例化。只有在容器实例化后,才可以从IOC容器里获取Bean的实例并使用。

spring提供了两种类型的ioc容器实现。

BeanFactory ioc容器的基本实现

ApplicationContext 提供了更多的高级特性,是BeanFactory的子接口。

BeanFactory 是spring框架的基础设施,面向spring本身。

ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext二分BeanFactory

 

ApplicationContext 的主要实现类

ClassPathXmlApplicationContext:从类路径下加载配置文件。

FileSystemXmlApplicationContext:从文件系统中加载配置文件。

ConfigurableApplicationContext:扩展与ApplicationContext 新增两个主要方法refresh()和close()/在AppplicationContext具有启动,刷新和关闭上下文的能力。

 

ApplicationContext在初始化上下文的时候就实例化所有单例的Bean

WebApplicationContext是专门为web应用而准备的,它允许从相对于web根目录的路径中完成初始化工作。

从IOC容器中获取Bean

ApplicationContext的getBean()方法;

依赖注入的方式

属性注入

构造器注入

工厂方法注入(很少使用,不推荐)

 

 

属性注入

属性注入即通过setter方法注入Bean的属性值或者以来的对象

属性注入使用<property>元素,使用name属性指定Bean的属性名称,value或者<value>子节点指定属性值,

<bean id=”helloworld” class = “cy.test.HelloWorld”>

       <property name=”userName” value=”test”></property>

</bean>

 

构造注入

通过构造方法注入Bean的属性或者依赖的对象,它保证了Bean实例在实例化后就可以使用。

构造器注入在<constructor-arg>元素里申明属性,没有name属性。

 

 

引用其他Bean

组成应用程序的Bean经常需要互相协作以完成应用程序的功能,要使Bean能够相互访问,就必须在Bean配置文件中指定对Bean的引用。

在Bean配置文件中,可以通过<ref>元素或ref属性为Bean的属性或构造参数对Bean的引用。

也可以在属性构造器里包含bean的申明。这样子的bean称为内部bean

<bean id=”service” class=”com.cy.test.service”></bean>

<bean id=”action” class=”com.cy.test.action”>

    <property name=”service” ref=”service”></property>

</bean>

 

内部bean

当bean实例仅仅给一个特定的属性使用时,可以将其声明为内部bean 内部bean申明直接包含在<property>或者<construct-arg>元素里。不需要设置任何id或name属性。内部bean不能使用在其他任何地方。(没有id或者name引用)

集合属性

在spring中可以通过一组内置的xml标签<list><set><map>来配置集合属性

转载于:https://www.cnblogs.com/cyfly/p/4550362.html

你可能感兴趣的文章
spark开发生成EXE
查看>>
Vue 全家桶介绍
查看>>
WPF Bitmap转Imagesource
查看>>
Java compiler level does not match the version of the installed Java project facet.解决方法
查看>>
笔记_小结
查看>>
Linux lsof命令 umount U盘
查看>>
自定义Font
查看>>
linux svn 服务端搭建
查看>>
maven用途、核心概念、用法、常用参数和命令、扩展
查看>>
linux时间同步ntp服务的安装与配置
查看>>
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法...
查看>>
网络编程-socket并发-粘包问题
查看>>
python 中安装pandas
查看>>
Hibernate 的<generator class="native"></generator>的不同属性含义
查看>>
linux修改root账户的用户名所得的教训
查看>>
【LeetCode】Flatten Binary Tree to Linked List
查看>>
读后感-浮生六纪
查看>>
执行指定路径的程序文件
查看>>
Leetcode-950 Reveal Cards In Increasing Order(按递增顺序显示卡牌)
查看>>
[Linux] 在 Linux CLI 使用 ssh-keygen 生成 RSA 密钥
查看>>