SSM搭建-Spring中的Bean(3)

本文详细探讨了Spring框架中的Bean基础知识,包括Bean的标识、作用域、属性注入方式,以及Bean的生命周期。文章介绍了BeanFactory和ApplicationContext的区别,强调了ApplicationContext在实际应用中的优势。此外,通过实例展示了Bean的生命周期过程,包括Bean的实例化、初始化、使用和销毁,并解释了BeanPostProcessor和InstantiationAwareBeanPostProcessor接口的作用。最后,文章给出了如何将自定义的BeanPostProcessor注册到BeanFactory中。
摘要由CSDN通过智能技术生成

         文章基于 林炳文Evankaka原创作品。(内容略有删减,加入自己理解,加背景色部分)

         摘要:spring的核心容器实现了Ioc,其目 的是提供一种无侵入式的框架。在本文中,首先讲解了Spring的基础bean的相关知识,然后介绍了Spring是如何对bean进行管理的。

        在Spring中,有2个最基本最重要的包,即org.springframework.beans 和org.springframework.context.在这两个包中实现了无侵入式的框架,代码中大量引用了Java的反射机制,通过动态调用的方式避免了硬编码,为spring的反向控制特性提供了基础。在这2个包中,最重要的类是BeanFactoryApplicationContext

  • BeanFactory提供了一种先进的配置机制来管理任何种类的bean。是Spring框架的基础设施面上的功能,是最本质的Spring的基础。
  • ApplicationContext建立在BeanFactory之上,并增加了其他功能,如国际化,获取资源,事件传递等。面向的是使用Spring框架的开发者,计划所有的场合都适用。
  • 因此在大多数场合都采用ApplicationContext方法。

 本文工程免费下载

一、Bean的基础知识

1.在xml配置文件中,bean的标识(id 和 name)

 id:指定在benafactory中管理该bean的唯一的标识。name可用来唯一标识bean 或给bean起别名。

  1.  <bean id="helloWorld" class="com.name.HelloWorld">  
  2. ........  
  3. <span style="color:#000000;"> </bean></span>  
2.bean的class

class属性指定了bean的来源,即bean的实际路径。注意要指定全路径,而不可只写类名。


3.Bean的作用域

在spring中,bean共有五种作用域:分别是singleton、prototype、request、session、global和global Session。在以上五种作用域中,singleton和prototype是最常用的。

singloeton:只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一实例。

prototype:对这个bean的每次请求都会都会创建一个新的bean实例。根据已经存在的bean而clone出来的bean。默认为singleton模式。

 改写成prototype模式写法如下:

  1. <bean id="student3" class="com.mucfc.beanfactory.Student" scope="prototype">  
  2.     .......  
  3. </bean>  
4.bean的属性

spring中,bean的属性值有2种注入方式。setter注入和构造函数注入。(此处注意,Ioc中bean的注入方式有三种与这个相区别,分别是Setter方法注入,构造器注入以及接口注入)

setter注入是在调用无参的构造函数或无参的静态工厂方法实例化配置文档中定义的bean之后,通过调用bean上的setter方法实现的。

构造函数的依赖注入是通过调用带有很多参数的构造方法实现的,每个参数表示一个对象或者属性。

这里不懂看此文

 5.对属性null值的处理

  1. <bean id="student5" class="com.mucfc.beanfactory.Student">  
  2.     <property name="std_name">  
  3.         <value></value>  
  4.     </property>  
  5.     <property name="std_id">  
  6.         <value>2005</value>  
  7.     </property>  
  8. </bean>  
	<bean id="student5" class="com.mucfc.beanfactory.Student">
		<property name="std_name">
			<value></value>
		</property>
		<property name="std_id">
			<value>2005</value>
		</property>
	</bean>
或者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值