私はスプリング3を使って開発された実行可能なjarファイルを持っています。それは定期的に@Scheduledアノテーションを使っていくつかのタスクを実行し、今、私は、春のブートがhereを提供するものと同様に、監視と分析の目的でこれらのカウンタを表示したいと考えています。実行可能なjarのカスタムエンドポイントを追加する方法
/**
* Requester - The main entry point for this application.
*
*/
@Configuration
@ComponentScan(basePackages = "com.tpv.req")
@EnableScheduling
@ImportResource({ "classpath:/spring/applicationContext-common.xml" })
@PropertySource(value="file:/opt/requester/requester.properties")
public class Requester implements SchedulingConfigurer {
protected static final Logger logger = LoggerFactory.getLogger(Requester.class);
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskExecutor());
}
@Bean(destroyMethod = "shutdown")
public Executor taskExecutor() {
return Executors.newScheduledThreadPool(1);
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() {
PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
return pspc;
}
@SuppressWarnings({ "unused", "resource" })
public static void main(String args[]) {
AbstractApplicationContext context = new AnnotationConfigApplicationContext(Requester.class);
}
}
@Componentクラス:
しようとしました@Component
public class CustomRequester {
@Scheduled(initialDelay = 5000, fixedDelayString = "${requester.wait.time}")
public void processRequests() {
//Perform some task
}
それは、スプリング4を必要とし、私のjarファイルは、それらの使用スプリングの依存関係を持っている3.
をここに私の@Configurationクラスであるように私は春のブートを使用することはできません@Controller:
@Controller
@RequestMapping("/status")
public class StatusController {
@Autowired
Status status;
/**
* @return Status object (as json)
*/
@RequestMapping(method=RequestMethod.GET)
public @ResponseBody Status doResponse() {
return status;
}
}
これは機能しませんでした。
スプリングブートなしで同様のエンドポイントを使用できる方法はありますか?または、これらのカウンターを表示するにはどうすればよいですか?埋め込み桟橋を使用して目的を果たすことはできますか?
ありがとうございます。
自分でコードを作成することはできませんか?あなたが書いたことから、別のスケジュールされた仕事が終わるまで、これらの生成されたカウンターは同じままであることを理解していますか?もしそうなら、これらの値のリポジトリのように動作するBeanを作成します。次に、このBeanリポジトリから最新の値を読み込み、アプリケーション/ json形式で提示するコントローラを追加します。完了しました。 –
このアプローチを提案してくれてありがとう。私は実際に@Controllerで試しました。コントローラを使ってコードを追加するために投稿を編集しました。しかし、これはうまくいかなかった。私はちょうど瓶があるので私は思う。埋め込みWebコンテナはありません。これは正しいですか?または私は何かを逃している?基本的な質問があれば申し訳ありません。私はMVCを開始する初心者です。 – pooja