SpringでのBeanFactoryとApplicationContextの違い
違い:
ApplicationContextはBeanFactoryと比較してより多くの拡張機能を提供しているが、主な違いはBeanFactoryが遅延ロードであることであり、Beanの属性のいずれかが注入されていない場合、BeanFactoryがロードされた後、getBeanメソッドを初めて使用してこのBeanを呼び出すまで異常を放出しないことである.ApplicationContextは、自身を初期化するときに検査し、依存する属性が注入されているかどうかを検査するのに役立ちます.一般的にApplicationContextを使用することを選択します.
-----------------------------------------------------------------------------------------------------------------------------------
BeanFactoryを使用してxmlプロファイルからbeanをロードします.
ApplicationContextを使用してxmlプロファイルからbeanをロードするには、次の手順に従います.
ApplicationContextはBeanFactoryと比較してより多くの拡張機能を提供しているが、主な違いはBeanFactoryが遅延ロードであることであり、Beanの属性のいずれかが注入されていない場合、BeanFactoryがロードされた後、getBeanメソッドを初めて使用してこのBeanを呼び出すまで異常を放出しないことである.ApplicationContextは、自身を初期化するときに検査し、依存する属性が注入されているかどうかを検査するのに役立ちます.一般的にApplicationContextを使用することを選択します.
-----------------------------------------------------------------------------------------------------------------------------------
BeanFactoryを使用してxmlプロファイルからbeanをロードします.
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class BeanFactoryClient{
public static void main(String[] args){
BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
beanFactory.getBean("beanName");
}
}
ApplicationContextを使用してxmlプロファイルからbeanをロードするには、次の手順に従います.
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ApplicationContextClient{
public static void main(String[] args) {
ApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");
cxt.getBean("beanName");
}
}