1. 程式人生 > 其它 >Bean例項化的三種方式

Bean例項化的三種方式

無參構造方法例項化


userimpl 為介面實現類
demo 為測試類
UserDao 為介面

package cn.impl;
import cn.user.UserDao;
public class userimpl implements UserDao {
    @Override
    public void say() {
        System.out.println("hello!");
    }
}
package cn.user;

public interface UserDao {
    public abstract void say();
}

package cn.text;

import cn.user.UserDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class demo1 {
    public static void main(String[] args) {
        ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao = (UserDao) app.getBean("userDao");
        userDao.say();
    }
}

在 Spring配置檔案中配置 bean

<bean id ="UserDao" class = "cn.impl.userimpl"> <bean>

輸出結果 :

工廠靜態方法例項化

建立工廠靜態方法

package cn.factory;

import cn.impl.userimpl;
import cn.user.UserDao;

public class userFactory {

    static UserDao getUserDao(){
        return new userimpl();
    }
}

bean配置

     <bean id ="UserDao" class="cn.factory.userFactory" factory-method="getUserDao"></bean>

工廠例項方法


import cn.impl.userimpl;
import cn.user.UserDao;

public class eampleFactory {
    
    public UserDao getUserDao(){
        return new userimpl();
        
    }
}

bean 配置

  <bean id="example" class="cn.factory.eampleFactory"></bean>
        <bean id="UserDao" factory-bean="example" factory-method="getUserDao"></bean>