Start Project from Spring Initializer
- 
Main file - src/main/java/com.example/main
 
- 
resources - static: store static resources like js, css, images
- templates: store all templates files
- application.properties: config file, can modify some setting
 
Main Function
- 
This method aims to run the spring boot application @SpringBootApplication public class HelloWorldApplication { public static void main(String[] args) { SpringApplication.run(HelloWorldApplication.class, args); } }
- 
@SpringBootApplication - 
To mark Spring Boot must run this main method of this class to run Spring Boot application @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { ... }
 
- 
Controller Service
- 
@RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "Hello Spring Boot!"; } }
- 
@RestController - 
the return value of all methods will be wirtten on brower @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController { @AliasFor( annotation = Controller.class ) String value() default ""; }
 
- 
Deploy
- 
add plugin in pom.xml <!-- this plugin make application to a jar package> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
- 
Using mvn package commend to generate jar file 
- 
find jar file it in target file, then use terminal to open it java -jar filename
To Explore More
- 
spring-boot-starter-web - In this project, we utilized web to develop web application.
 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
- 
There many starter we can use Name Description spring-boot-starterCore starter, including auto-configuration support, logging and YAML spring-boot-starter-activemqStarter for JMS messaging using Apache ActiveMQ spring-boot-starter-amqpStarter for using Spring AMQP and Rabbit MQ spring-boot-starter-aopStarter for aspect-oriented programming with Spring AOP and AspectJ spring-boot-starter-artemisStarter for JMS messaging using Apache Artemis spring-boot-starter-batchStarter for using Spring Batch spring-boot-starter-cacheStarter for using Spring Framework’s caching support spring-boot-starter-data-cassandraStarter for using Cassandra distributed database and Spring Data Cassandra spring-boot-starter-data-cassandra-reactiveStarter for using Cassandra distributed database and Spring Data Cassandra Reactive spring-boot-starter-data-couchbaseStarter for using Couchbase document-oriented database and Spring Data Couchbase spring-boot-starter-data-couchbase-reactiveStarter for using Couchbase document-oriented database and Spring Data Couchbase Reactive spring-boot-starter-data-elasticsearchStarter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch spring-boot-starter-data-jdbcStarter for using Spring Data JDBC spring-boot-starter-data-jpaStarter for using Spring Data JPA with Hibernate spring-boot-starter-data-ldapStarter for using Spring Data LDAP spring-boot-starter-data-mongodbStarter for using MongoDB document-oriented database and Spring Data MongoDB spring-boot-starter-data-mongodb-reactiveStarter for using MongoDB document-oriented database and Spring Data MongoDB Reactive spring-boot-starter-data-neo4jStarter for using Neo4j graph database and Spring Data Neo4j spring-boot-starter-data-r2dbcStarter for using Spring Data R2DBC spring-boot-starter-data-redisStarter for using Redis key-value data store with Spring Data Redis and the Lettuce client spring-boot-starter-data-redis-reactiveStarter for using Redis key-value data store with Spring Data Redis reactive and the Lettuce client spring-boot-starter-data-restStarter for exposing Spring Data repositories over REST using Spring Data REST spring-boot-starter-data-solrStarter for using the Apache Solr search platform with Spring Data Solr spring-boot-starter-freemarkerStarter for building MVC web applications using FreeMarker views spring-boot-starter-groovy-templatesStarter for building MVC web applications using Groovy Templates views spring-boot-starter-hateoasStarter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS spring-boot-starter-integrationStarter for using Spring Integration spring-boot-starter-jdbcStarter for using JDBC with the HikariCP connection pool spring-boot-starter-jerseyStarter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-webspring-boot-starter-jooqStarter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpaorspring-boot-starter-jdbcspring-boot-starter-jsonStarter for reading and writing json spring-boot-starter-jta-atomikosStarter for JTA transactions using Atomikos spring-boot-starter-jta-bitronixStarter for JTA transactions using Bitronix. Deprecated since 2.3.0 spring-boot-starter-mailStarter for using Java Mail and Spring Framework’s email sending support spring-boot-starter-mustacheStarter for building web applications using Mustache views spring-boot-starter-oauth2-clientStarter for using Spring Security’s OAuth2/OpenID Connect client features spring-boot-starter-oauth2-resource-serverStarter for using Spring Security’s OAuth2 resource server features spring-boot-starter-quartzStarter for using the Quartz scheduler spring-boot-starter-rsocketStarter for building RSocket clients and servers spring-boot-starter-securityStarter for using Spring Security spring-boot-starter-testStarter for testing Spring Boot applications with libraries including JUnit Jupiter, Hamcrest and Mockito spring-boot-starter-thymeleafStarter for building MVC web applications using Thymeleaf views spring-boot-starter-validationStarter for using Java Bean Validation with Hibernate Validator spring-boot-starter-webStarter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container spring-boot-starter-web-servicesStarter for using Spring Web Services spring-boot-starter-webfluxStarter for building WebFlux applications using Spring Framework’s Reactive Web support spring-boot-starter-websocketStarter for building WebSocket applications using Spring Framework’s WebSocket support 
end.
 
                
            