zoukankan      html  css  js  c++  java
  • Spring创建复杂对象

    Spring创建复杂对象

    何为复杂对象?

    在java中,不能通过new关键字创建的对象,都称为复杂对象,如抽象类(abstract,例如Calendar日期类)、接口(interface,JDBC中的Connection连接类)。

    复杂对象(如Calendar日期类)的普通创建方式:

    Calendar calendar = Calendar.getInstance();

    System.out.println(newSimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()));

    在spring工厂中,复杂对象的创建方式:

    1.类 implements FactoryBean<Calendar>接口

    //创建复杂对象的方法,并将创建对象返回
    @Override
    public Calendar getObject() throws Exception {
    return Calendar.getInstance();
    }
    //创建复杂对象的类型
    @Override
    public Class<?> getObjectType() {
    return Calendar.class;
    }
    //复杂对象在工厂中创建的次数,true表示单例,false表示多例
    @Override
    public boolean isSingleton() {
    return true;
    }
    }
    //spring创建Connection
    public class ConnectionFactoryBean implements FactoryBean<Connection> {
    @Override
    public Connection getObject() throws Exception {
    //加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    return DriverManager.getConnection("jdbc:mysql://localhost:3306/express","root", "root");
    }
    @Override
    public Class<?> getObjectType() {
    return Connection.class;
    }
    @Override
    public boolean isSingleton() {
    return false;
    }
    }

    2. 配置

    <!-- 配置复杂对象的创建 -->
    <bean id="calendar" class="factoryBean.CalendarFactoryBean"></bean>
    <bean id="connection" class="factoryBean.ConnectionFactoryBean"></bean>
  • 相关阅读:
    206. 反转链表
    JAVA 排序总结
    Codeforces Round #674 (Div. 3)
    【BM模板】
    【 lca 】最近公共祖先
    【 欧拉函数 】GCD
    【 裴蜀定理 】Border
    【调和级数 && 欧拉常数】 Harmonic Number
    【Lucas定理】组合数取模算法
    【 最短路 && 思维 】Escape Plan
  • 原文地址:https://www.cnblogs.com/lkldeblog/p/10685833.html
Copyright © 2011-2022 走看看