【问题标题】:Fix XmlBeanFactory Deprecated error Spring修复 XmlBeanFactory Deprecated 错误 Spring
【发布时间】:2016-07-26 16:44:08
【问题描述】:

这些天我正在学习 Spring Framework。我正在关注一些 youtube 视频。 根据视频,我在 Spring 中编写了我的第一个代码,与教程相同。但在某个时候,我收到了 XmlBeanFactory 已弃用的警告,这些警告未在教程中显示。

我在 MyPackage 包上有两个类。

package MyPackage;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class DrawingApp {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    BeanFactory factory=new XmlBeanFactory(new FileSystemResource("Spring.xml"));
    Triangle triangle =(Triangle) factory.getBean("triangle");

    triangle.draw();
}

}

这里我的 XmlBeanFactory 已被弃用。我到处检查都无法修复它

这是我的三角形课程。

package MyPackage;

public class Triangle {

public void draw(){
    System.out.println("Draw a Triangle");
}
}

这是我的 xml 文件“spring.xml”

<?xml version="1.0" encoding="UTF-8"?>

<beans>
<bean id="triangle" class="MyPackage.Triangle"></bean>
</beans>

【问题讨论】:

标签: java spring javabeans deprecated


【解决方案1】:

由于 XmlBeanFact 已被弃用,您可以使用 FileSystemXmlApplicationContext

public static void main(String[] args) {
    ApplicationContext factory = new FileSystemXmlApplicationContext("spring.xml");
    Triangle trianle=(Triangle)factory.getBean("triangle");
    trianle.draw();
}

【讨论】:

    【解决方案2】:

    由于不推荐使用 XmlBeanFactory,您可以使用以下代码 sn-p。

    public class SpringHelloWorldTest {
        public static void main(String[] args) {
               ApplicationContext context= new ClassPathXmlApplicationContext("spring.xml");
               Triangle triangle =(Triangle) factory.getBean("triangle");
               triangle.draw();
    }
    

    }

    注意:确保在构建路径中添加“spring.xml”。

    【讨论】:

      【解决方案3】:

      由于 XmlBeanFactory 已被弃用,您可以使用 ClassPathXmlApplicationContext

          public static void main(String[] args) {
              ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
              Triangle trianle=(Triangle)context.getBean("triangle");
              trianle.draw();
      
          }
      

      【讨论】:

      • 由于 XmlBeanFactory 已被弃用,您可以使用 ClassPathXmlApplicationContext
      【解决方案4】:

      由于不推荐使用 XmlBeanFactory,因此您可以使用 ClassPathXmlApplicationContext 作为替代。 ApplicationContext 是 BeanFactory 的子接口。另外,请确保 spring.xml 在类路径中(在 src 文件夹下)。

          ApplicationContext appContext = new ClassPathXmlApplicationContext("spring.xml");
          // ApplicationContext appContext = new FileSystemXmlApplicationContext("spring.xml");
          Triangle triangle = (Triangle) appContext.getBean("triangle");
          triangle.draw();
      

      更多解释可以查看https://docs.spring.io/spring/docs/2.5.x/reference/beans.html#context-introduction-ctx-vs-beanfactory

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-17
        • 2020-11-01
        • 1970-01-01
        • 2020-10-13
        • 1970-01-01
        • 2022-10-13
        • 2021-12-01
        • 2011-07-11
        相关资源
        最近更新 更多