Code ví dụ Spring Boot Hello World với Intellij IDEA

Code ví dụ Spring Boot Hello World với Intellij IDEA

(Xem lại: Code ví dụ Spring Boot Hello World với Eclipse)

1. Tạo Project Spring Boot Hello World

Trên thanh menu bar chọn File > New > Module

Hoặc click vào biểu tượng module trên màn hình:

Code ví dụ Spring Boot Hello World với Intellij IDEA

Code ví dụ Spring Boot Hello World với Intellij IDEA

Ở phần bên trái chọn loại module là Spring Initializr. Ở phần bên phải chọn bản jdk mà bạn cài trên máy.

Code ví dụ Spring Boot Hello World với Intellij IDEA

Nhập các thông tin của module

Code ví dụ Spring Boot Hello World với Intellij IDEA

Ở đây mình làm ví dụ hiển thị trang html với nội dung hello world nên sẽ dùng 2 thư viện là Spring WebThymeleaf để hiển thị

Code ví dụ Spring Boot Hello World với Intellij IDEA

Chọn nơi lưu trữ module

Code ví dụ Spring Boot Hello World với Intellij IDEA

Kết quả:

Code ví dụ Spring Boot Hello World với Intellij IDEA

File pom.xml chứa các thư viện mà bạn đã thêm ở bên trên:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>stackjava.com</groupId>
    <artifactId>helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>helloworld</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

FIle HelloworldApplication.java được tự động tạo.

package stackjava.com.helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloworldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloworldApplication.class, args);
    }

}

Spring Boot cung cấp SpringApplication class để khởi động cho ứng dụng Spring từ hàm main() sử dụng static method SpringApplicaiton.run:

@SpringBootApplication là một annotation tiện ích, nó tương đương với việc ta thêm các annotation sau:

  • @Configuration gán class này thành một bean của application context.
  • @EnableAutoConfiguration
  • @EnableWebMvc.
  • @ComponentScan.

Kể từ khi spring-boot-starter-web thêm Tomcat và Spring MVC, auto-configuration sẽ giả sử rằng bạn phát triển một ứng dụng web và sẽ setup Spring phù hợp.

package stackjava.com.helloworld.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class BaseController {

    @RequestMapping("/")
    public String welcome() {
        return "index";
    }
}
  • Annotation @Controller và @RequestMapping annotations (Xem lại @Controller, @RequestMapping trong Spring MVC): sẽ tự động mapping đường dẫn / tới file index.html trong folder resources

 Tạo file view

Tạo file index.html trong folder resources/templates

<html>
<head>
<title>Spring Boot</title>
</head>
<body>
  <h1>Hello Spring Boot</h1>
</body>
</html>

Chạy module

Click chuột phải vào file HelloworldApplication.java và chọn run.

Kết quả:

 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.0.RELEASE)

2020-06-01 16:58:28.002  INFO 400 --- [           main] s.com.helloworld.HelloworldApplication   : Starting HelloworldApplication on superman with PID 400 (F:\project\stackjava\helloworld\target\classes started by stackjava in F:\project\stackjava)
2020-06-01 16:58:28.021  INFO 400 --- [           main] s.com.helloworld.HelloworldApplication   : No active profile set, falling back to default profiles: default
2020-06-01 16:58:28.920  INFO 400 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-06-01 16:58:28.928  INFO 400 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-06-01 16:58:28.928  INFO 400 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.35]
2020-06-01 16:58:28.929  INFO 400 --- [           main] o.a.catalina.core.AprLifecycleListener   : An older version [1.2.21] of the Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of [1.2.23]
2020-06-01 16:58:28.929  INFO 400 --- [           main] o.a.catalina.core.AprLifecycleListener   : Loaded Apache Tomcat Native library [1.2.21] using APR version [1.6.5].
2020-06-01 16:58:28.929  INFO 400 --- [           main] o.a.catalina.core.AprLifecycleListener   : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2020-06-01 16:58:28.929  INFO 400 --- [           main] o.a.catalina.core.AprLifecycleListener   : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
2020-06-01 16:58:28.947  INFO 400 --- [           main] o.a.catalina.core.AprLifecycleListener   : OpenSSL successfully initialized [OpenSSL 1.1.1a  20 Nov 2018]
2020-06-01 16:58:29.016  INFO 400 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-06-01 16:58:29.017  INFO 400 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 912 ms
2020-06-01 16:58:29.127  INFO 400 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-06-01 16:58:29.183  INFO 400 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page template: index
2020-06-01 16:58:29.329  INFO 400 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-06-01 16:58:29.341  INFO 400 --- [           main] s.com.helloworld.HelloworldApplication   : Started HelloworldApplication in 1.732 seconds (JVM running for 2.654)

Mặc định spring web sẽ chạy trên port 8080.

Mở trình duyệt và truy cập địa chỉ localhost:8080

Code ví dụ Spring Boot Hello World với Intellij IDEA

Okay, Done!

Download code ví dụ trên tại đây.

References:

https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-introducing-spring-boot.html

https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-first-application.html

stackjava.com