Java 如何在应用程序的主方法中使用Spring初始化来提取Hibernate DB记录

Java 如何在应用程序的主方法中使用Spring初始化来提取Hibernate DB记录,java,spring,hibernate,Java,Spring,Hibernate,我想从转换代码 这样它就不会从test目录运行,而是从srcdir运行,作为一个方法为main的类。在测试中,正确读取xml文件中的数据库 我发现将测试转换为应用程序时存在几个问题: 测试使用SpringJUnit4ClassRunner运行,测试类扩展AbstractTransactionalJUnit4SpringContextTests。将此应用于带有main方法的类会导致上下文初始化异常 在Java中,main方法总是静态的。如果我尝试注入像 @Autowired 私有类实例 然后我不能

我想从转换代码

这样它就不会从test目录运行,而是从srcdir运行,作为一个方法为main的类。在测试中,正确读取xml文件中的数据库

我发现将测试转换为应用程序时存在几个问题:

  • 测试使用SpringJUnit4ClassRunner运行,测试类扩展AbstractTransactionalJUnit4SpringContextTests。将此应用于带有main方法的类会导致上下文初始化异常

  • 在Java中,main方法总是静态的。如果我尝试注入像

  • @Autowired
    私有类实例

    然后我不能在主类中调用它,因为注入的字段不是静态的(也不能是静态的)


    解决方案是什么?

    您只需在主类中创建应用程序上下文对象,然后就可以使用bean:

    ConfigurableApplicationContext ctx = new AnnotationConfigApplicationContext(“your.package.of.beans”);
     // you are passing here the package where beans  are located  
    
      YourClass yourClass = ctx.getBean(YourClass.class);
    

    这是spring boot应用程序?不,我需要spring boot吗?我的应用程序中不需要Tomcat不,这是一个很好的补充答案,请看一看