zoukankan      html  css  js  c++  java
  • 通过工厂方式配置bean

    srcdaydayCarFactoryBean.java

    package dayday;

    import org.springframework.beans.factory.FactoryBean;

    /**
    * Created by I am master on 2016/11/30.
    */
    //自定义的FactoryBean需要实现FactoryBean接口
    public class CarFactoryBean implements FactoryBean<Car>{
    private String brand;
    public void setBrand(String brand){
    this.brand=brand;
    }
    @Override
    public Car getObject() throws Exception {
    return new Car(brand,"50w");
    }

    @Override
    public Class<?> getObjectType() {
    return Car.class;
    }

    @Override
    public boolean isSingleton() {
    return true;
    }
    }

    srcdaydayCar.java

    package dayday;

    import com.sun.org.apache.xpath.internal.SourceTree;

    import javax.sound.midi.Soundbank;

    /**
    * Created by I am master on 2016/11/28.
    */
    public class Car {
    private String name;
    private String money;
    public void setName(String name){
    this.name=name;
    System.out.println("setName...");
    }
    public String getName(){
    return name;
    }
    public void setMoney(String money){
    this.money=money;
    }
    public String getMoney(){
    return money;
    }
    public String toString(){
    return "Car"+"["+"carname="+name+" carValue="+money+"]";
    }
    public Car(String name,String money){
    this.money=money;
    this.name=name;
    }
    public Car(){
    System.out.println("Car's constructor...");
    }
    public void init(){
    System.out.println("init...");
    }
    public void destroy(){
    System.out.println("destroy...");
    }
    }

    srcdaydayMain.java

    package dayday;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import java.sql.SQLException;

    /**
    * Created by I am master on 2016/11/28.
    */
    public class Main {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
    ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
    Car car=ctx.getBean("car",Car.class);
    System.out.println(car);
    }
    }

    srceans.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" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!--
    通过FactoryBean来配置Bean的实例
    class指向FactoryBean的全类名
    property:配置FactoryBean的属性,但实际返回的实例是FactoryBean的getObject()方法返回的实例
    -->
    <bean id="car" class="dayday.CarFactoryBean">
    <property name="brand" value="BMW"></property>
    </bean>
    </beans>

    运行结果
    Car[carname=BMWcarValue=50w]
  • 相关阅读:
    vipw和vigr命令
    linux sudo命令
    linux中切换用户方式su和su -的区别
    ls Common Command-Line Options
    字符串同构问题 字符串操作:数组计数字符个数问题
    聚类算法
    Python实践之(七)逻辑回归(Logistic Regression)
    Gradient Boost Decision Tree(&Treelink)
    天池大数据周冠军分享|附移动推荐算法赛答辩会Top5选手PPT
    【天池大数据赛题解析】资金流入流出预测(附Top4答辩ppt)
  • 原文地址:https://www.cnblogs.com/Hdaydayup/p/6118824.html
Copyright © 2011-2022 走看看