基於 Spring Boot 編寫控制檯程式
阿新 • • 發佈:2019-03-14
誠然,當然世界上大部分 Spring Boot 程式是 Web 程式。將視線離開 Web 並放大到整個程式世界,則必將看到控制檯程式是更基礎也更廣泛的一類程式。
用 Java 編寫的控制檯程式也可以享受 Spring Boot 帶來的好處。
以 Spring Boot 為基礎開發控制檯程式,需要實現一個介面
@FunctionalInterface public interface CommandLineRunner { void run(String... args) throws Exception; }
例如:
class DartApplication implements CommandLineRunner {
@Override
public void run(String... args) {
System.out.println("程式實際上的入口在這裡。");
}
}
將這個類加上 @SpringBootApplication
註解,然後編寫一個帶主函式的類就可以了。
@SpringBootApplication class DartApplication implements CommandLineRunner { @Override public void run(String... args) { System.out.println("程式實際上的入口在這裡。"); } } public class App { public static void main(String[] args) { SpringApplication.run(DartApplication.class, args); } }
當然,把主函式放進 DartApplication
裡面也可以
@SpringBootApplication public class DartApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(DartApplication.class, args); } @Override public void run(String... args) { System.out.println("程式實際上的入口在這裡。"); } }
Spring 提供的註解,Spring Boot 提供的方便的 starter,在這裡仍然能用。
例如自動裝配:
@Component
class Diablo {
void firenova() {
System.out.println("釋放烈火新星");
}
}
@SpringBootApplication
public class DartApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(DartApplication.class, args);
}
@Autowired
public DartApplication(Diablo diablo) {
this.diablo = diablo;
}
private final Diablo diablo;
@Override
public void run(String... args) {
this.diablo.firenova();
}
}
總之,基於 Spring Boot 開發控制檯程式,就是實現個介面,