web-dev-qa-db-ja.com

Springs XmlBeanFactoryは非推奨です

私は春を学ぼうとしています。私はこのサイトをフォローしています http://www.roseindia.net/spring/spring3/spring-3-hello-world.shtml

その中の1つの例を試しました。私は以下のようなものを使用していますが、ここに示しています:

XmlBeanFactory型は非推奨です

これに代わるものとして何を使用する必要がありますか?

public class SpringHelloWorldTest {
    public static void main(String[] args) {

        XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("SpringHelloWorld.xml"));

        Spring3HelloWorld myBean = (Spring3HelloWorld)beanFactory.getBean("Spring3HelloWorldBean");
        myBean.sayHello();
    }
}
50
Vishwanath.M

ApplicationContextはBeanFactoryのサブインターフェースです。この方法を使用できます

public class SpringHelloWorldTest {
    public static void main(String[] args) {
        ApplicationContext context= new ClassPathXmlApplicationContext("SpringHelloWorld.xml");
        Spring3HelloWorld myBean= (Spring3HelloWorld) context.getBean("Spring3HelloWorldBean");
        myBean.sayHello();
    }
}
50
halilibrahim

代替コードは次のとおりです。

public static void main(String[] args){
    ApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"SpringHelloWorld.xml"});
    BeanFactory factory=context;
    Spring3HelloWorld myBean=(Spring3HelloWorld)factory.getBean("Spring3HelloWorldBean");
    myBean.sayHello();
}
15
krishna
BeanDefinitionRegistry beanDefinitionRegistry = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanDefinitionRegistry);
reader.loadBeanDefinitions(new ClassPathResource("SPRING_CONFIGURATION_FILE"));
9
Bax

ClassPathXmlApplicationContext クラスを使用できます。

6
eolith

Beanコンテキストを取得する新しい方法(クラスキャストなし):

BeanDefinitionRegistry beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
reader.loadBeanDefinitions(new ClassPathResource("beans.xml"));

Apppication全体のコンテキストを開始するときに使用する必要があります

ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
6
Vitaly

これはどう:

DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(new ClassPathResource("config/Beans.xml"));
Messager msg = (Messager) factory.getBean("Messager");
1
huoergai

SpringドキュメントにあるXMLBeanFactoryの代替

GenericApplicationContext ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
xmlReader.loadBeanDefinitions(new 
ClassPathResource("applicationContext.xml"));
PropertiesBeanDefinitionReader propReader = new 
PropertiesBeanDefinitionReader(ctx);
propReader.loadBeanDefinitions(new 
ClassPathResource("otherBeans.properties"));
ctx.refresh();

MyBean myBean = (MyBean) ctx.getBean("myBean");
1
hemanto

以下が実装する最良の方法です

Resource res = new FileSystemResource("beans.xml");
XmlBeanFactory factory = new XmlBeanFactory(res);

or

ClassPathResource res = new ClassPathResource("beans.xml");
XmlBeanFactory factory = new XmlBeanFactory(res);

or

ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
       new String[] {"applicationContext.xml", "applicationContext-part2.xml"});
// of course, an ApplicationContext is just a BeanFactory
BeanFactory factory = (BeanFactory) appContext;
1
user1517878

リソースリーク: 'context'は決して閉じられません」という警告が表示されます。

SO post Spring ApplicationContext-リソースリーク:「コンテキスト」が閉じられない で提案された解決策は、問題を修正します。

それが誰かを助けることを願っています。

0
AKG

「FileSystemXmlApplicationContext」を次のように使用します

ApplicationContext  context =  new FileSystemXmlApplicationContext("SpringHelloWorld.xml");

Spring3HelloWorld myBean= (Spring3HelloWorld) context.getBean("Spring3HelloWorldBean");

myBean.sayHello();
0
Alferd Nobel