

Spring Boot でコマンドラインアプリケーションを作っていたのですが、急きょ、アプリではなくライブラリにしなければならなくなりました。

開発環境：Eclipse、Windows7  
開発言語：Java  
フレームワーク：Spring Boot

※以下、xxxxx.jarというのが私が作成したもの。

### 現在の起動方法

  1. 起動用batファイルでjavaコマンドを実施(java -cp xxxxx.jar xxx.xxx.MainClass)
  2. xxxxx.jar起動

### 変更後の起動方法

  1. 既存アプリケーションに当該ライブラリの情報を設定（対象ファイル、クラス、メソッド）
  2. 既存アプリケーションは当該ライブラリをロードして、設定されたクラスとメソッドを実行

Springフレームワークの機能を利用しつつ、このように移行することはできないでしょうか。  
今現在、メインクラスのmainメソッドを削除し、executeというメソッドを作成して既存アプリに登録していますが、以下のエラーでうまく起動できていません。

[code]

    Failed to process import candidates for configuration class [xxx.xxx.MainClass]; nested exception is java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.
    
[/code]

フレームワークを利用してアプリを作る為の情報は山ほどありますが、フレームワークを利用してライブラリ（mainメソッドが無い）を作る方法はないのでしょうか。  
その様なことは一般的にできないのでしょうか。

## 追記

試行錯誤した結果、上記エラーはなくなりました。  
しかし、AutowiredアノテーションによるDIがされません。


CC BY-SA 3.0
2017-06-07T03:22:14.803
35358
2017-06-28T06:00:55.847
2020-06-17T08:14:45.997
-1
15316
question
java windows eclipse spring-boot
Spring Boot アプリケーションをライブラリ化する方法


AutowiredでDIされなかったクラスは呼び出し元から`new`されたインスタンスでした。  
その為、当該クラスをラップしたクラスにて目的のクラスを`ApplicatoinContext#getBean()`を利用してインスタンス生成するようにしたところ、DIされるようになりました。


CC BY-SA 3.0
2017-06-28T06:00:55.847
35933
2017-06-28T06:00:55.847
15316
35358
answer