当前位置:  开发笔记 > 编程语言 > 正文

自动启动弹簧应用程序

如何解决《自动启动弹簧应用程序》经验,为你挑选了1个好方法。

那么有没有一种方法来初始化和启动命令行Spring应用程序而无需编写main方法.似乎所有这些主要方法都具有相同的形式

public static void main(final String[] args) throws Exception {
    ApplicationContext ctx = new ClassPathXmlApplicationContext("context.xml", Boot.class);
    FooService fooService = (FooService) ctx.getBean("fooService");
    fooService.bar();
}

我想这并不复杂,但有人找到了一种方法来提供一种方法来指定context.xml命令行,或者更好的是,在清单文件中?

这里的目标是将spring应用程序的创建简化为可执行jar.我希望我可以Main-Class在清单中指定一些实用程序类.我想我还需要指定应用程序的起点,一个bean和一个方法来开始这个过程.



1> SaM..:

我会按照我的理解尝试回答这个问题:

如何打包一个包含弹簧配置的jar,比如我只需要使用java -jar myjar.jar

你问题中的代码片段很有用.您不必参数化context.xml.您只需要将代码及其依赖项(spring等)捆绑在一个jar中,并在jar文件中为主类提供适当的清单条目.

我个人使用maven 2,这里是一个pom.xml,我会用它来做到这一点:


  4.0.0
  com.stackoverflow
  stackoverflow-autostart-spring-app
  0.1

  
    
      org.springframework
      spring
      2.5.2
    
  
  
    
      
        maven-jar-plugin
        
          
            
              com.stackoverflow.spring.autostart.Autostart
            
          
        
      
      
        org.apache.maven.plugins
        maven-shade-plugin
        
          
            package
            
              shade
            
          
        
      
    
  

这是Java代码,源代码中是假设一些包名src/main/java的目录和文件context.xmlsrc/main/resources目录.

所以在这里pom.xml有几个要点:

    春天依赖(我相信自己说话)

    maven jar插件的配置,将主类添加为清单条目

    的行家遮阳插件,它负责收集所有依赖/类和它们包装成一个单一罐中的插件.

可执行jar将在target\stackoverflow-autostart-spring-app-0.1.jar运行时可用mvn package.

我有这个代码都在我的盒子上工作但只是意识到我不能在这里附加一个zip文件.任何人都知道我可以这样做并链接到这里?

我在github上创建了一个git存储库,其中包含与此问题相关的代码,如果你想查看它的话.

希望这可以帮助.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有