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-starter
Core starter, including auto-configuration support, logging and YAML spring-boot-starter-activemq
Starter for JMS messaging using Apache ActiveMQ spring-boot-starter-amqp
Starter for using Spring AMQP and Rabbit MQ spring-boot-starter-aop
Starter for aspect-oriented programming with Spring AOP and AspectJ spring-boot-starter-artemis
Starter for JMS messaging using Apache Artemis spring-boot-starter-batch
Starter for using Spring Batch spring-boot-starter-cache
Starter for using Spring Framework’s caching support spring-boot-starter-data-cassandra
Starter for using Cassandra distributed database and Spring Data Cassandra spring-boot-starter-data-cassandra-reactive
Starter for using Cassandra distributed database and Spring Data Cassandra Reactive spring-boot-starter-data-couchbase
Starter for using Couchbase document-oriented database and Spring Data Couchbase spring-boot-starter-data-couchbase-reactive
Starter for using Couchbase document-oriented database and Spring Data Couchbase Reactive spring-boot-starter-data-elasticsearch
Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch spring-boot-starter-data-jdbc
Starter for using Spring Data JDBC spring-boot-starter-data-jpa
Starter for using Spring Data JPA with Hibernate spring-boot-starter-data-ldap
Starter for using Spring Data LDAP spring-boot-starter-data-mongodb
Starter for using MongoDB document-oriented database and Spring Data MongoDB spring-boot-starter-data-mongodb-reactive
Starter for using MongoDB document-oriented database and Spring Data MongoDB Reactive spring-boot-starter-data-neo4j
Starter for using Neo4j graph database and Spring Data Neo4j spring-boot-starter-data-r2dbc
Starter for using Spring Data R2DBC spring-boot-starter-data-redis
Starter for using Redis key-value data store with Spring Data Redis and the Lettuce client spring-boot-starter-data-redis-reactive
Starter for using Redis key-value data store with Spring Data Redis reactive and the Lettuce client spring-boot-starter-data-rest
Starter for exposing Spring Data repositories over REST using Spring Data REST spring-boot-starter-data-solr
Starter for using the Apache Solr search platform with Spring Data Solr spring-boot-starter-freemarker
Starter for building MVC web applications using FreeMarker views spring-boot-starter-groovy-templates
Starter for building MVC web applications using Groovy Templates views spring-boot-starter-hateoas
Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS spring-boot-starter-integration
Starter for using Spring Integration spring-boot-starter-jdbc
Starter for using JDBC with the HikariCP connection pool spring-boot-starter-jersey
Starter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web
spring-boot-starter-jooq
Starter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa
orspring-boot-starter-jdbc
spring-boot-starter-json
Starter for reading and writing json spring-boot-starter-jta-atomikos
Starter for JTA transactions using Atomikos spring-boot-starter-jta-bitronix
Starter for JTA transactions using Bitronix. Deprecated since 2.3.0 spring-boot-starter-mail
Starter for using Java Mail and Spring Framework’s email sending support spring-boot-starter-mustache
Starter for building web applications using Mustache views spring-boot-starter-oauth2-client
Starter for using Spring Security’s OAuth2/OpenID Connect client features spring-boot-starter-oauth2-resource-server
Starter for using Spring Security’s OAuth2 resource server features spring-boot-starter-quartz
Starter for using the Quartz scheduler spring-boot-starter-rsocket
Starter for building RSocket clients and servers spring-boot-starter-security
Starter for using Spring Security spring-boot-starter-test
Starter for testing Spring Boot applications with libraries including JUnit Jupiter, Hamcrest and Mockito spring-boot-starter-thymeleaf
Starter for building MVC web applications using Thymeleaf views spring-boot-starter-validation
Starter for using Java Bean Validation with Hibernate Validator spring-boot-starter-web
Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container spring-boot-starter-web-services
Starter for using Spring Web Services spring-boot-starter-webflux
Starter for building WebFlux applications using Spring Framework’s Reactive Web support spring-boot-starter-websocket
Starter for building WebSocket applications using Spring Framework’s WebSocket support
end.