メインクラスを実行するときに引数を渡したいことありますよね。
これは当然なんですけど、その引数を別のクラスでも使いたいことありますよね。
これを実現するための一般的な方法は、
コンストラクタに渡す、setterを作ってそこにセットする。
という感じなんですけど、そもそも、メインクラスではrunだけしたい!
ということはないですか?
@SpringBootApplication
public class PleasureSample{
public static void main(String[] args) {
SpringApplication.run(PleasureSample.class, args);
}
}
ありますよね。
これだとコンストラクタもsetterも使えないです。
あと、呼び出したいクラスは@Autowiredしたいから
コンストラクタに引数渡すやり方はできないですよね。
ありますよね。
これだとコンストラクタもsetterも使えないです。
あと、呼び出したいクラスは@Autowiredしたいから
コンストラクタに引数渡すやり方はできないですよね。
そんなわけで、
Springでメインクラスのコマンドライン引数を別クラスで取得する方法
メイン 実行 引数 取得
Spring 引数 args 取得
いろいろ探しました。
ありませんでした。
仕方がないから自分で見つけました。割とあっさり。
ApplicationArgumentsを使いましょう。
具体的には、
Springでメインクラスのコマンドライン引数を別クラスで取得する方法
メイン 実行 引数 取得
Spring 引数 args 取得
いろいろ探しました。
ありませんでした。
仕方がないから自分で見つけました。割とあっさり。
ApplicationArgumentsを使いましょう。
具体的には、
@Component
public class TreasureService {
@Autowired
private ApplicationArguments arguments;
@PostConstruct
public void start(){
String[] args = arguments.getSourceArgs();
for(String arg : args){
System.out.println(arg);
}
}
}
これです。
@AutowiredでApplicationArgumentsをDIして、arguments.getSourceArgs()。
実行してみると、ちゃんと取得できていました。
調べても出てこないということは、みんな当然のように知っていることなんですかね。
調べても調べても見当違いなページに飛ばされた自分に、さようなら。