zoukankan      html  css  js  c++  java
  • 通过FactoryBean配置Bean

    这个FactoryBean是Spring提供的,它有三个方法(如下):

    其中,getObject():返回Bean本身;

               getObjectType():返回Bean的实例;

               isSingleton():返回这个Bean是不是单例的。

    beans-beanfactory.xml:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://www.springframework.org/schema/beans
     5         http://www.springframework.org/schema/beans/spring-beans.xsd">
     6    
     7    <!-- 
     8                      通过FactoryBean来配置bean的实例
     9        class:指向FactoryBean的全类名
    10        property:配置FactoryBean的属性
    11        
    12                     但实际返回的是实例却是FactoryBean的getObject()方法返回的实例!
    13     -->
    14    <bean id="car" class="com.hk.beans.factorybean.CarFactoryBean">
    15       <property name="brand" value="BMW"></property>
    16    </bean>
    17 </beans>

    CarFactoryBean.java:

     1 package com.hk.beans.factorybean;
     2 
     3 import org.springframework.beans.factory.FactoryBean;
     4 
     5 //自定义FactoryBean 需要实现Spring提供的接口
     6 public class CarFactoryBean implements FactoryBean<Car>{
     7     private String brand;
     8     public void setBrand(String brand) {
     9         this.brand = brand;
    10     }
    11     //返回bean的对象
    12     @Override
    13     public Car getObject() throws Exception {
    14         return new Car(brand,600000);
    15     }
    16     
    17     //返回bean的类型
    18     @Override
    19     public Class<?> getObjectType() {
    20         return Car.class;
    21     }
    22 
    23     @Override
    24     public boolean isSingleton() {
    25         return true;
    26     }
    27 }

    运行结果:

    每接触一个新领域,我就像一块掉进水里的海绵,四面八方的养分都让我不断充实。O(∩_∩)O~
  • 相关阅读:
    linux g++编译dxf文件C++解析库dxflib
    linux g++使用总结
    一个使用three.js的网页DXF文件查看器dxf viewer
    node.js教程基础:node.js访问操作系统
    node.js教程基础:node.js全局对象
    node.js教程基础:node.js命令行选项
    node.js教程基础:node.js包管理器
    node.js教程基础:node.js REPL
    node.js教程基础:第一个node.js程序
    node.js教程基础:node.js安装
  • 原文地址:https://www.cnblogs.com/zhzcode/p/9648353.html
Copyright © 2011-2022 走看看