
Photo by
ryonakano
Webプログラミングの始め方(13)
ここでのゴール
プログラムを追ってみよう、アノテーションを知ろう
説明
それではようやくJavaのプログラムを見ていきたいと思います。
まずお約束のmain
javaプログラムはmainメソッドから始まりますね。

これがmainメソッドを実装しているクラスになります。
src/main/java/org/example/Main.java
mainメソッドがいますね
mainメソッドはこの一行です。
始めたばっかりの人はおまじない(よくわからんけど、とりあえず書く必要がある)と思ってください。
ちょろっと知っている人は、これはSpringアプリケーションの起動に使っており、mainクラスを渡すことで処理を委譲しています。
なので、mainから処理が始まり、Springアプリケーションはここから起動することになります。

gradleのapplication、bootRunを実行するとアプリケーションが動き、以下のログが出力されればアプリケーションは起動しています。
17:26:55: Executing task 'bootRun'...
Starting Gradle Daemon...
Gradle Daemon started in 2 s 250 ms
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootRunMainClassName UP-TO-DATE
> Task :bootRun
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.4)
2022-01-30 17:27:09.854 INFO 3664 --- [ main] org.example.Main : No active profile set, falling back to default profiles: default
2022-01-30 17:27:10.510 INFO 3664 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data R2DBC repositories in DEFAULT mode.
2022-01-30 17:27:10.557 INFO 3664 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 51 ms. Found 1 R2DBC repository interfaces.
2022-01-30 17:27:11.416 INFO 3664 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2022-01-30 17:27:11.416 INFO 3664 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2022-01-30 17:27:11.416 INFO 3664 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.52]
2022-01-30 17:27:11.541 INFO 3664 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2022-01-30 17:27:11.541 INFO 3664 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1640 ms
2022-01-30 17:27:12.245 INFO 3664 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2022-01-30 17:27:12.245 INFO 3664 --- [ main] org.example.Main : Started Main in 2.863 seconds (JVM running for 3.412)
Tomcat started on port(s): 8080 (http) with
Started Main in 2.863 seconds
この2行でprt8080で待受を行いmainが起動していることがわかります
ここで、ブラウザを開き
http://localhost:8080/customers
URLを上記のようにしてアクセスするとコントローラーのlistメソッドに処理が来ます。

そしてここまでで、出てきている見慣れないもの、メソッドやクラスはあると思いますが、アノテーションと呼ばれる@から始まる書式があるのにお気づきでしょうか?


これらのものです。この@から始まる書式がアノテーションと呼ばれるもので、これらを変数や、メソッドにつけることにより、色々な振る舞いを指定することが出来ます。