Spring - Bean的概念及其基础配置

原创 2015年11月18日 17:06:09
概述

bean说白了就是一个普通的java类的实例,我们在bean中写一些我们的业务逻辑,这些实例由Sping IoC容器管理着。在web工程中的spring配置文件中,我们用<bean/>标签来配置一个bean。

Bean ID

没个bean都有至少一个ID,而且区别于其他bean的ID。在配置文件中,我们可以用 id 或者 name 来指定bean的ID。id属性只能设置一个值,如果项目中需要给bean指定多个ID,可以在name属性中设置多个,表示这个bean的别名。如果 id 和 name 属性都没有指定,Spring会在初始化bean的时候自动给bean赋一个唯一的ID(格式为:类的全路径@数字串)。但如果你的bean需要引用另外一个bean,那么被引用的那个bean就必须设置id或者name属性。当然我们还可以以内置bean的方式配置而不需要给内部bean指定ID。

除了在bean配置内部指定bean的ID,还可以用<alias/>标签来指定bean的别名:
<span style="font-size:14px;"><alias name="oldName" alias="newName1"/>
<alias name="oldName" alias="newName2"/></span>

Bean实例化的方式

Spring提供多种配置方式以实现不同方式来实例化一个bean

1. 通过默认构造函数
配置方式如下:
<span style="font-size:14px;"><bean id="exampleBean" class="examples.ExampleBean"/>

<bean name="anotherExample" class="examples.ExampleBeanTwo"/></span>
 
注意class中必须是一个类名,不能是接口。因为Spring是通过Class.newInstance方法来实例化的。

2. 通过类内部静态工厂方法
配置方式如下:
<span style="font-size:14px;"><bean id="clientService"
      class="examples.ClientService"
      factory-method="createInstance"/>
</span>
<span style="font-size:14px;">public class ClientService {
  private static ClientService clientService = new ClientService();
  private ClientService() {}

  public static ClientService createInstance() {
    return clientService;
  } 
}</span>
这种方式在Spring是通过调用bean中factory-method中指定的静态方法来实例化这个bean。

3. 通过实例工厂类方法
配置方式如下:
<span style="font-size:14px;"><bean id="serviceLocator" class="examples.DefaultServiceLocator">
  <!-- inject any dependencies required by this locator bean --></bean>


<bean id="clientService"
      factory-bean="serviceLocator"
      factory-method="createClientServiceInstance"/>

<bean id="accountService"
      factory-bean="serviceLocator"
      factory-method="createAccountServiceInstance"/></span>
 
<span style="font-size:14px;">public class DefaultServiceLocator {
  private static ClientService clientService = new ClientServiceImpl();
  private static AccountService accountService = new AccountServiceImpl();

  private DefaultServiceLocator() {}

  public ClientService createClientServiceInstance() {
    return clientService;
  }

  public AccountService createAccountServiceInstance() {
    return accountService;
  }
}
</span>


这种方式Spring先加载实例工厂类DefaultServiceLocator,然后后面需要从这个类获取指定类实例的,只需要通过factory-bean和factory-method配置指定工厂类和调用方法即可。


版权声明:本文为博主原创文章,转载请注明出处

J2EE之Spring中Bean的基础配置

J2EE之Spring中Bean的配置代码: Car.java:package com.mooc.spring.beans;public class Car { private String ...

三Spring中Bean的基础配置1

配置bean的方式通常有2种: 1.通过XML方式进行配置 2.通过注解的方式进行配置 还是举上边的那个例子: class:bean的全类名,通过反射的方式在IOC容器...

Spring-bean基础配置

首先介绍一个名词: IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 I...

三Spring中的Bean配置基础2

字面值:可用字符串表示的值,可以通过 元素标签或 value 属性进行注入。 基本数据类型及其封装类、String 等类型都可以采取字面值注入的方式 若字面值中包含特殊字符,可以使用 把字面值包裹...

spring基础-Bean的装配方式(二)基于Annotation的配置

Annotation中,常用的注释: @Componet 描述spring中的一个bean @Repository 将数据访问层(Dao层)的类标识为Spring中的bean @Service 将业...

从不知道到了解—RabbitMQ 基础概念及 Spring 的配置和使用

你在系统中是否写过这样的接口:客户端访问服务器,服务器进行了大量逻辑/耗时操作之后,才能将结果返回给客户端,而这时,客户端的连接或许已经因为超时而关闭了。为了能够及时的给客户端返回数据, 在项目中,将...
  • wudkj
  • wudkj
  • 2017年06月26日 10:50
  • 216

spring bean XML配置入门

  • 2015年02月05日 15:23
  • 16KB
  • 下载

Spring的Bean配置说明

  • 2016年02月24日 15:49
  • 1.45MB
  • 下载

Spring Bean基本概念

参考书籍《Spring 3.x企业应用开发与实践》Bean配置信息是Bean的元数据信息,由以下4个方面组成Bean的实现类 Bean的属性信息,如数据库的连接数、用户名、密码 Bean的依赖关系,S...

SPRING:bean配置properties

  • 2012年01月29日 16:18
  • 25KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring - Bean的概念及其基础配置
举报原因:
原因补充:

(最多只允许输入30个字)