2017-03-13 9 views
0

私は春のブートレストサービスを開始しています。これは、特定のRESTコントローラがある場合には、ディストリビューションにいくつかのjarファイルが含まれることがあることを意味します。restコントローラのインポート/ロードをプログラムで強制的に行う方法

どのように私はspring-bootに設定ファイルがあるコントローラをどこに見つけるかを伝えることができます。今私は注釈でこの情報を送って、1つの配布ごとに「メイン」を作成するようにしています。ファイルに定義されているコントローラをインポートするユニークなメインを定義したいと思います。言い換えれば、私は怒鳴るsnipedに示されているように手動@Import注釈にアクセスしたい:私はcorretlyあなたを理解していれば

@Configuration 
@PropertySource("conf.cfg") 
@Import(value = {RestContorller1.class, RestContorller2.class}) 
@EnableAutoConfiguration 
@ConfigurationProperties 
@SpringBootApplication 
@RestController 
@EnableSwagger2 
public class Application { 

    public static void main(String[] args) { 

     String confFile = Const.DEFAULT_CONFIGURATION_FILE; 

     if(args.length>0) 
      confFile= args[0]; 
     System.setProperty("spring.config.name",confFile); 
     Boolean hasStarted = DataProcessingCore.start(confFile); 
     if(hasStarted) { 
      SpringApplication springApp = new SpringApplication(Application.class); 
      try { 
       springApp.setDefaultProperties(Utils.createPropertyFiles(confFile)); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      springApp.addInitializers(); 
      springApp.run(args); 


     } 

    } 
} 

答えて

0

は、お使いのコントローラがあなたの主なプロジェクト/ sまでmaven/gradleによってインポートJAR内に存在します。 、同じようにjarファイルをクラスパスにあるときに、あなたのコントローラをインポートするために使用することができることを、あなたは起動時にカスタムconfigurationを見つけるために、春を告げることができない春ブーツのようなauto-configurationを作成するために

私はここにそのための簡単な例を書いた:pricipalでCreating your own auto-configuration

を、あなたは(それがクラスパスとパッケージングのために重要です!!春のブートMavenプラグインなし)、スプリング・ブートアプリケーションを作成します。 spring.factoriesという名前のファイルを作成してください(実際の内容は、私がリンクしているガイドにあります)。これは、このジャーを持っているスプリングブートアプリケーションに、コントローラを検索するか@Beanを手動で設定するために@ComponentScanの設定をロードするように指示します。

これを行うと、@Importを実行する必要はなく、コントローラは動的にロードされます。

関連する問題