Bean例項化的三種方式
阿新 • • 發佈:2022-03-13
無參構造方法例項化
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>