同じ:
- スプリングは、彼らは、Javaインターフェースであり、他方はApplicationContextのある、二つの異なるIOCコンテナを提供たBeanFactoryであり、ApplicationContextのがたBeanFactoryが継承(のApplicationContextはListableBeanFactoryを継承しました。
- 彼らはまた、自動注入性をサポートし、XMLの属性を設定するために使用することができます。
- たBeanFactoryを継承ListableBeanFactory)は、たBeanFactoryとApplicationContextのは、Beanを取得するためにgetBean( "Bean名")を使用する方法を提供します。
たBeanFactory豆登録情報を入手
public class HelloWorldApp{
public static void main(String[] args) {
XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource("beans.xml"));
HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");
obj.getMessage();
}
}
ApplicationContextの豆登録情報を入手
public class HelloWorldApp{
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
}
}
しかし、彼らはいくつかの仕事の違いや特徴があります。
- あなたはApplicationContextのコンテナのインスタンス化シングルトンBeanを起動するときに、あなたがgetBean()メソッド、たBeanFactoryのみインスタンス化Beanを呼び出すときにインスタンス化、しかし、getBean()メソッドを呼び出すために待機しません。
- たBeanFactoryは国際化、すなわち国際化をサポートしていませんが、ApplicationContextのは、そのためのサポートを提供しています。
- たBeanFactoryとApplicationContextの間の別の違いは、リスナーBeanとして登録するイベントを発行することができます。
- コアたBeanFactoryとApplicationContextの実装は、コア実装のXMLBeanFactoryあるClassPathXmlApplicationContext、我々が使用してWebApplicationContextのgetServletContextメソッドを高め、環境Webコンテナです。
- あなたがたBeanFactoryを使用した自動注入を使用する場合は、あなたがのApplicationContextを使用する場合は、設定のためのXMLを使用することができ、APIの登録AutoWiredBeanPostProcessorを使用する必要があります。
- 要するに、たBeanFactoryはApplicationContextの高度な機能を提供しながら、IOCとDIの基本的な機能を提供し、テストし、非生産使用できたBeanFactoryが、ApplicationContextのは、より豊富な機能を備えたコンテナの実装である、たBeanFactoryよりも良いはずです