Spring 框架 从入门到放弃4

Spring Bean 定义

Bean 定义

Bean对象是构成我们应用程序重要的一部分,也是由Spring IOC 容器所管理的,一直都提到bean这个东西,那么,它具体是什么呢,首先,bean是一个被实例化、组装且通过Spring IOC容器管理的 对象,我们通过XML文件对它进行配置。

  • 如何创建一个Bean

首先我们来看一下Bean的各种属性

属性描述
class这个属性是强制性的,并且指定用来创建 bean 的 bean 类。
name这个属性指定唯一的 bean 标识符。在基于 XML 的配置元数据中,你可以使用 ID 和/或 name 属性来指定 bean 标识符。
scope这个属性指定由特定的 bean 定义创建的对象的作用域,它将会在 bean 作用域的章节中进行讨论。
constructor-arg它是用来注入依赖关系的,之后会提到。
properties它是用来注入依赖关系的,之后会提到。
autowiring mode它是用来注入依赖关系的,之后会提到。
lazy-initialization mode延迟初始化的 bean 告诉 IoC 容器在它第一次被请求时,而不是在启动时去创建一个 bean 实例。
initialization 方法在 bean 的所有必需的属性被容器设置之后,调用回调方法。它将会在 bean 的生命周期章节中进行讨论。
destruction 方法当包含该 bean 的容器被销毁时,使用回调方法。它将会在 bean 的生命周期章节中进行讨论。

Spring IOC容器和Bean的关系是什么样的呢
在我看来,Spring容器和Bean是将Bean交给容器进行管理和配置

  1. Spring IOC容器读取Bean配置信息,Bean配置信息由XML文件、JAVA类@Configuration、以及注解@Autowired进行读取
  2. 根据Spring容器中的Bean注册表进行实例化Bean,将装配的Bean进行实例化
  3. 将Bean的实例放到Spring容器中
  4. 最后当应用程序需要使用Bean的时候到Spring容器中进行获取

Spring 配置元数据

Spring IOC 容器完全是由市级编写的配置元数据的格式进行解耦,基本基于这三个方法将数据提供给Spring容器

  • 基于XML的配置文件
  • 基于注解的配置
  • 基于Java的配置

这里主要只讲基于XML的方式,其他方式后续会讲到

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <!-- 一个简单的Bean定义 -->
   <bean id="..." class="...">
       <!-- Bean的配置 -->
   </bean>
</beans>

我们对这个文件进行一 一讲解

  1. xmlns="http://www.springframework.org/schema/beans",它是默认命名空间:它没有空间名,用于Spring Bean的定义;
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",xsi命名空间:这个命名空间用于为每个文档中命名空间指定相应的Schema样式文件,是标准组织定义的标准命名空间。

提示:对于基于 XML 的配置,Spring 2.0 以后使用 Schema 的格式,使得不同类型的配置拥有了自己的命名空间,使配置文件更具扩展性。

  1. 当我们需要使用到其他命名空间的时候,可以通过复制 xmlns="http://www.springframework.org/schema/beans",将xmlns后加上:context并将最后的beans修改成context,然后配置一下xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd",复制这两个链接并把里面所有的beans修改为context,最终效果为
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/xmlns:context"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    <!-- 必须配置context命名空间才可以用 -->
	<context:component-scan base-package="com.zy.controller" />
	   <!-- 一个简单的Bean定义 -->
   <bean id="..." class="...">
       <!-- Bean的配置 -->
   </bean>
</bean

其他命名空间也可以套用这个模板进行更改,更改方式和上面讲的一样。

总结

以上就是Spring Bean定义的讲解,主要讲解了Bean是什么,Spring容器和它有什么关系,它们是怎么进行装配的以及如果基于XML去配置Bean,下一篇会讲解Spring Bean的作用域和生命周期的内容。

后续的每一篇讲解内容会尽量减少并仔细讲解,讲太多的话不容易去仔细理解领悟。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值