Chuyển tới nội dung
Home » Java 8 Spring Boot | Introducing Spring Boot

Java 8 Spring Boot | Introducing Spring Boot

Lessons Learned Java 8 / SpringBoot 2.x to Java 17 / SpringBoot 3.x

Dependency upgrades

Some dependencies have been upgraded in Spring Boot v2.2.1 are as follows:

  • Mongodb 3.11.2
  • Spring Security 5.2.1.RELEASE
  • Slf4j 1.7.29
  • Spring Hateoas 1.0.1.RELEASE
  • Hibernate Validator 6.0.18.Final
  • Hibernate 5.4.8.Final
  • Jetty 9.4.22.v20191022
  • Spring Framework 5.2.1
  • Spring AMQP 2.2.1
  • H2 1.4.200
  • Spring Security 5.2
  • Spring Batch 4.2

Some important and widely used third-party dependencies are upgraded in this release are as follows:

  • Micrometer 1.3.1
  • Flyway 6.0.7
  • Elasticsearch 6.8.4
  • JUnit 5.5
  • Jackson 2.10

Những kiến thức cần có khi học Spring Boot

Ngoài việc hiểu rõ được khái niệm về Sping Boot và những ưu điểm, đặc tính mà nó mang lại, thì bạn cũng cần biết thêm một số kiến thức cần có khi học Sping Boot dưới đây để sử dụng nó một cách hiệu quả.

4.Java Core

Trước khi học về Sping Boot thì Java Core là kiến thức không thể thiếu:

  • Java cơ bản: Hàm, biến, vòng lặp,…
  • Hướng đối tượng OOP trong Java.
  • Các tính năng mới trong Java 8.
  • Biết cách sử dụng các collection API thông dụng và quan trọng.
  • Ngoài ra còn một số những yếu tố khác mà bạn nên tìm hiểu mặc dù Spring Boot ít khi sử dụng đến như Asynchronous, Stream API, Multithreading và File IO.

4.Template engine

Sử dụng template engine giúp xử lý view trong các ứng dụng MVC để pass dữ liệu vào view và trả về một trang HTML cơ bản trong Spring Boot. Ngoài ra, bạn cũng nên tìm hiểu thêm về cách sử dụng Thymeleaf và JSP trong Sping Boot.

4.Package manager

Để quản lý các thư viện được cài thêm, các package manager là công cụ không thể thiếu trước khi code dự án Spring Boot. Java có hai package manager tương tự với NPM và Yarn của Javascript là Gradle và Maven. Bạn nên tìm hiểu về cách dùng của 2 loại package manager này.

Tuy nhiên, phần này không cần thiết phải hiểu quá sâu. Một số nội dung bạn cần biết là chỉnh sửa thông tin project, cài đặt và xóa thư viện,…

4.JPA/MongoDB

Một số kiến thức bạn cần tìm hiểu trong phần này bao gồm:

  • Cách tạo cấu hình database trong Sping Boot.
  • Cấu trúc các lớp và interface của JPA/MongoDB.
  • Các thao tác CRUD cơ bản.
  • Tự động tạo các câu yêu cầu query dựa vào tên method.
  • Sử dụng MongoTemplate để thực hiện các câu query phức tạp.
  • Phân trang và sắp xếp các dữ liệu query.
Lessons Learned Java 8 / SpringBoot 2.x to Java 17 / SpringBoot 3.x
Lessons Learned Java 8 / SpringBoot 2.x to Java 17 / SpringBoot 3.x

Cần tìm hiểu những gì

2.Java Core

Trước khi học Spring Boot thì các bạn cần biết Java. Một số kiến thức cần thiết của Java như sau:

  • Java cơ bản: biến, hàm, vòng lặp,…
  • Hướng đối tượng (OOP)
  • Java 8: các tính năng mới trong java 8 (tối thiểu phải biết)
  • Collections API: biết cách dùng các collection thông dụng (quan trọng)

Ngoài ra các bạn có thể tìm hiểu thêm (không biết cũng không sao vì Spring Boot khá ít đụng tới):

  • Stream API
  • Asynchronous
  • Multi threading
  • File IO

2.Package manager

Khi code dự án Spring Boot thì cần có package manager để quản lý các thư viện cài thêm. Bạn nào code Javascript sẽ biết về NPM và Yarn, thì Java cũng có hai package manager tương tự là Maven và Gradle.

  • Tìm hiểu cách dùng Maven cơ bản

  • Tìm hiểu cách dùng Gradle cơ bản

Phần này khi mới bắt đầu không nên tìm hiểu quá sâu, chỉ cần biết cách cài đặt thư viện, xóa thư viện, chỉnh sửa thông tin project, các build-in tasks là được. Sau này khi đụng tới nhiều thì bạn tự khắc quen thôi.

2.Spring Boot

Cách học Spring Boot đúng đắn là học thực hành, làm project. Bởi vì nhiều thứ trong Spring Boot rất dễ, hoặc thành chuẩn mực rồi, chủ yếu là bạn đã từng đụng tới chưa thôi.

  • Học Spring Boot bắt đầu từ đâu: Bài giới thiệu lộ trình học hôm nay.

  • Tạo dự án Spring Boot đầu tiên: Dùng Spring Initializr để generate code, chọn các dependency, chạy, debug, build JAR và chạy file JAR đó.

  • Luồng đi trong Spring Boot: Tìm hiểu một service Spring Boot gồm những thành phần nào, và luồng đi của dữ liệu ra sao.

  • Dependency injection áp dụng vào Spring Boot như thế nào (phần 1)

  • Dependency injection áp dụng vào Spring Boot như thế nào (phần 2)

  • Bean và ApplicationContext là gì trong Spring Boot: Tìm hiểu cơ bản về Bean và ApplicationContext.

  • Vòng đời, các loại bean và cơ chế component scan: Tìm hiểu sâu hơn về cách các bean được định nghĩa và xử lý.

  • Cấu trúc một dự án Spring Boot thế nào cho chuẩn: Tìm hiểu các thành phần cơ bản như Controller, Services,… và cách tổ chức chúng trong source code.

  • Entity, DTO và Model: Ba đối tượng chứa dữ liệu chính và cách convert, mapping qua lại giữa chúng.

  • Spring Boot xử lý request trong controller như thế nào (phần 1): Cách controller hoạt động, các loại HTTP method và nhận dữ liệu từ request.

  • Spring Boot xử lý request trong controller như thế nào (phần 2)

  • Xử lý request trong Controller (phần 2): Trả về lỗi và xử lý chuyên dụng với các loại data đặc biệt.

  • Validation dữ liệu request – luôn luôn cần thiết

  • Tổ chức code service trong Spring Boot: bài ngắn gọn nói sơ qua về vai trò của service layer.

  • Xử lý exception hiệu quả trong Spring Boot: Cách tạo Aspect để bắt exception dù nó ném ra ở bất cứ đâu.

  • Cấu hình Spring Boot trong file application.properties: đó là gì và kĩ thuật chia cấu hình hiệu quả.

  • HTML template và static content: Thư mục template và static là gì, có chức năng như thế nào?

  • Scheduled job trong Spring Boot: Tạo và thực hiện tác vụ theo lịch trình đặt sẵn.

  • Lập trình hướng khía cạnh AOP không khó như bạn nghĩ: Tìm hiểu về AOP, các khái niệm liên quan và thực hiện một demo logging cơ bản.

2.JPA/MongoDB

Mình chỉ mới làm quen với Spring Boot được 6 tháng, và project mình làm chỉ về MongoDB thôi. Còn về SQL thì mình sẽ làm sau nhé

  • Cách cấu hình database trong Spring Boot: Tạo DB, thêm các thông số kết nối và kết nối.

  • Cấu trúc lớp và interface của JPA: JPA/MongoDB gồm những interface, class nào, phân cấp ra sau và chức năng của chúng.

  • CRUD cơ bản: Tìm hiểu các thao tác cơ bản CRUD.

  • Query creation: Tự động sinh câu query dựa trên tên method, hoặc bạn có thể custom nó bằng @Query.

  • Thực hiện các câu query phức tạp bằng MongoTemplate: Sử dụng MongoTemplate và các đối tượng như Query, Update,… để thực hiện các hành động phức tạp hơn với query.

  • Sắp xếp và phân trang data query được: Sort và paging dữ liệu query, đặc biệt là custom paging bằng skip và limit.

  • Thực hiện aggregation: Tổng hợp dữ liệu trong MongoDB

2.Template engine

Template engine xử lý phần View trong ứng dụng MVC, trong Spring Boot thì chúng ta sử dụng template engine để pass dữ liệu vào View và trả về một trang HTML.

  • Trả về trang HTML cơ bản trong Spring Boot

  • Sử dụng Thymeleaf trong Spring Boot

  • Sử dụng JSP trong Spring Boot

2.Các tool khác

Ngoài ra, trong dự án Spring Boot sẽ cần một số tool khác được embed vào code. Và bạn cần biết cấu hình và sử dụng chúng để nâng cao năng suất code.

  • Cấu hình và sử dụng Swagger trong Spring Boot: Swagger là một tool dùng để xem, chạy, test các API tương tự Postman. Đặc biệt là nó được kèm theo trong chính project của bạn, nó sẽ tự động phân tích metadata của code và sinh API. Ngoài ra Swagger còn có thể generate document từ code của bạn.

  • Thiết lập Logger cho project Spring Boot

  • Lombok – viết code Java ngắn hơn

  • Cấu hình Spring Actuator: Công cụ giám sát, theo dõi tình trạng web service Spring Boot. Actuator sẽ thêm 1 số API để bạn dùng, ví dụ /info hoặc /health để check tình trạng hoạt động của project.

  • Quarzt – giải pháp thay thế cho Spring Schedule

  • Cấu hình Firebase trong Spring Boot: Sử dụng các tính năng của Firebase như Authentication, Firestore, Storage,… trong dự án Spring Boot.

  • Cấu hình Spring Boot devtools: Để có được các tính năng như HotReload.

2.Nâng cao

  • Unit testing: Sử dụng JUnit để test ứng dụng Spring Boot.

  • Xuất file Excel trong Spring Boot: Sử dụng Apache POI để tạo và xuất file Excel.

  • Cách thêm SSL cho Spring Boot: Làm cho API của bạn hỗ trợ HTTPS

  • Cách gửi mail trong Spring Boot

  • Cách cấu hình trang 404 và white page

2.What’s next?

Sau khi đã nắm được đủ các kiến thức trên, các bạn có thể tìm hiểu thêm một số thứ khác liên quan Spring Boot.

  • Tìm hiểu Spring Security cơ bản

  • Xác thực người dùng trong Spring Security bằng session

  • Xác thực người dùng trong Spring Security bằng JWT

  • Spring batch là gì?

  • Spring reactive web: Web framework bất đồng bộ tương tự Node.js nhưng là Java.

Spring Boot mặc định sử dụng ngôn ngữ Java, các bạn có thể tìm hiểu thêm về Kotlin cũng khá hay.

Ưu điểm của Spring Boot

Với mục đích ra đời rất rõ ràng của mình, Spring Boot đã khắc phục được những hạn chế về cấu hình của Spring. Dưới đây, Stringee sẽ giới thiệu thêm đến bạn một số lợi ích của Spring Boot.

Những ưu điểm đó bao gồm:

  • Hội tụ đầy đủ các tính năng của Spring framework.
  • Đơn giản hóa cấu hình và xây dựng được các ứng dụng độc lập có khả năng chạy bằng “java -jar” nhờ các dependency starter.
  • Dễ dàng deploy vì các ứng dụng server được nhúng trực tiếp vào ứng dụng để tránh những khó khăn khi triển khai lên môi trường production mà không cần thiết phải tải file WAR.
  • Cấu hình ít, tự động hỗ trợ bất cứ lúc nào cho chức năng giống với Sping như tăng năng suất, giảm thời gian viết code và không yêu cầu XML config.
  • Cung cấp nhiều plugin, số liệu, cấu hình ứng dụng từ bên ngoài.
The ULTIMATE Guide to Spring Boot: Spring Boot for Beginners
The ULTIMATE Guide to Spring Boot: Spring Boot for Beginners

Deprecations in Spring Boot 2.2

  • The property logging.file has renamed to logging.file.name.
  • The property logging.path has renamed to logging.file.path.
  • The server.connection-timeout property has been deprecated in favor of server-specific properties.
  • Joda time support is deprecated in favor of java.time.

The following improvements are made in the Spring Boot 2.2.1

  • Java: Spring Boot 2.2.1
  • Spring Framework 5.2: This release of Spring Boot upgrades to Spring Framework to 5.2.
  • JMX is disabled: In this version, JMX is not enabled by default. We can enable it by using the property jmx.enabled=true. If you are using the IDE feature to monitor your application, we need to enable it.
  • Fork enabled by default: Spring Boot application that ran by Maven Plugin is now forked by default.
  • JUnit 5: Spring Boot v2.2.1 provides JUnit 5 by default. JUnit 5’s vintage engine is also included by default that supports existing JUnit 4-based test classes. We can also use JUnit 4 and JUnit 5 based test classes in the same module.
  • AssertJ 3.12: This release of Spring Boot upgrades to AssertJ 3.12. It contains a breaking API changes for assertions related to Iterator.
  • Hibernate Dialect: In the newer version of Spring Boot, Hibernate chose the dialect to use rather than applying a default dialect based on the detected database.
  • Gradle Requirements: The latest version of Spring Boot requires Gradle 4.10.

Học Spring Boot bắt đầu từ đâu?

Spring Boot 2.0

Let’s have a sneak peek at Spring Boot 2.0.

  • What’s New
    Infrastructure Upgrade
    Spring Framework 5
  • What’s Changed
    Configuration Properties
    Gradle Plugin
    Actuators endpoints
  • What’s Evolving
    Security
    Metrics

The pivotal team has upgraded the infrastructure in which the following tools are involved:

  • Supports Java 8 or above versions
  • Supports Apache Tomcat 8 or above versions
  • Supports Thymeleaf 3
  • Supports Hibernate 5.2

In Spring Framework 5, the Pivotal team upgraded the following:

  • Reactive Spring

    1. Servlet stack

      1. Servlet Container
      2. Servlet API
      3. Spring MVC
    2. Reactive Stack

      1. Netty, Servlet 3.1, Undertow
      2. Reactive HTTP Layer
      3. Spring WebFlux
  • Functional API
  • Kotlin Support

The latest version of Spring Boot is 2.2.1. This release of Spring Boot includes 110 fixes, dependency upgrades, and improvements.

In the Spring Boot v2.2.1, the annotation @ConfigurationProperties scanning is now disabled by default. We need to be explicitly opted into by adding the @ConfigurationPropertiesScan annotation.

Spring Boot & JPAStreamer | Express JPA Queries as Java Streams | java8 | JavaTechie
Spring Boot & JPAStreamer | Express JPA Queries as Java Streams | java8 | JavaTechie

Các đặc tính cơ bản của Spring Boot là gì?

Vì là một framework RAD nên Spring Boot mang trong nó nhiều đặc tính nổi trội phục vụ cho việc phát triển và cài đặt nhanh một ứng dụng chạy trên Java.

Đặc tính đầu tiên có thể kể đến đó là Spring Boot cung cấp sẵn cho chúng ta một lớp có chứa hàm main và được hoạch định làm điểm mở đầu cho toàn bộ chương trình. Lớp này được đặt tên là Spring Application, nó giúp khởi chạy các ứng dụng từ hàm main, khi chạy nó chúng ta chỉ cần gọi phương thức run.

Spring Boot giúp giảm bớt độ phức tạp trong việc cấu hình ứng dụng trong trường hợp chúng ta sử dụng nhiều môi trường. Với Profiles, Spring Boot cung cấp cho người sử dụng một cách phân chia cấu hình cho từng môi trường. Các bên thực hiện việc cấu hình ứng dụng hoàn toàn có thể được đánh dấu profiles để giới hạn thời điểm hay môi trường mà nó sẽ được tải các cấu hình lên ứng dụng.

Externalized Configurations: Externalized Configuration cho phép bạn có khả năng cấu hình được từ bên ngoài. Vì vậy, một ứng dụng được xây dựng có thể được vận hành và hoạt động trên nhiều môi trường khác nhau. Để thực hiện Externalized Configuration bạn có thể sử dụng các file properties, YAML, các tham số command line hay các biến môi trường.

Đặc tính cuối cùng mà bạn nên biết đó là tất cả các tính năng log nội bộ của Spring Boot đều sử dụng common logging. Chúng được quản lý một cách mặc định, vì vậy bạn không nên sửa các dependency logging nếu không được yêu cầu.

>>> Xem thêm bài viết:

– Khai báo và sử dụng mảng các đối tượng trong Java

– Phân biệt ArrayList, Set và Vector trong Java

– Lập trình đa luồng là gì? Hướng dẫn lập trình đa luồng bằng ngôn ngữ Java

Helpful Links

Spring:

Java 8:

http://www.baeldung.com/java-8-functional-interfaces

http://winterbe.com/posts/2015/05/22/java8-concurrency-tutorial-atomic-concurrent-map-examples/

https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html

http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/

http://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html

https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html

http://www.baeldung.com/foreach-java

http://winterbe.com/posts/2015/03/25/java8-examples-string-number-math-files/

http://www.baeldung.com/java-8-comparator-comparing

http://www.baeldung.com/java-8-sort-lambda

https://dzone.com/articles/java-8-friday-goodies-new-new

Mock Interview 3+ years experience | SDE-1 | Microservice | Java 8 | Spring boot | Code Decode |
Mock Interview 3+ years experience | SDE-1 | Microservice | Java 8 | Spring boot | Code Decode |

Available API’s

Greetings


GET /

Get all Topics in List


GET /topic

Get Topic of given ID


GET /topic/{id}

Add Topic in List


POST /topic

Update Topic of given ID


PUT /topic/{id}

Delete Topic of given ID


DELETE /topic/{id}

Get all Topics whose ID’s length is greater than minLength


GET /topic/minimum/length/{minLength}

Get all Topics sorted by ID


GET /topic/sort

String Operations on Topic List


GET /topic/string/operation

File Operations on Topic List


GET /topic/file/operation

Java 8 Date Time example


GET /datetime

Prerequisites

  1. Java sdk
  2. POSTMAN

Installing


1) Download or clone 2) Import the project 3) Run on location machine 4) Open Postman, to call API's ( localhost:8080 )

What to Read Next

Hopefully, this section provided some of the Spring Boot basics and got you on your way to writing your own applications. If you are a task-oriented type of developer, you might want to jump over to spring.io and follow some of the getting started guides that solve specific “How do I do that with Spring?” problems. We also have Spring Boot-specific “How-to” reference documentation.

Otherwise, the next logical step is to read using.html. If you are really impatient, you could also jump ahead and read about Spring Boot features.

Stream API in Java
Stream API in Java

Introducing Spring Boot

Spring Boot helps you to create stand-alone, production-grade Spring-based applications that you can run. We take an opinionated view of the Spring platform and third-party libraries, so that you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

You can use Spring Boot to create Java applications that can be started by using

java -jar

or more traditional war deployments.

Our primary goals are:

  • Provide a radically faster and widely accessible getting-started experience for all Spring development.

  • Be opinionated out of the box but get out of the way quickly as requirements start to diverge from the defaults.

  • Provide a range of non-functional features that are common to large classes of projects (such as embedded servers, security, metrics, health checks, and externalized configuration).

  • Absolutely no code generation (when not targeting native image) and no requirement for XML configuration.

Performance Improvements

In Spring Boot 2.2.1 the following performance has been improved:

Lazy Initialization

In Spring Boot 2.2.1, we can enable global lazy initialization by using the property spring.main.lazy-initialization property. It reduces the application startup time.

Java 13 Support

Spring Boot 2.2.1 now supports the latest version of Java that is Java 13.

Immutable Binding

In the newer version of Spring Boot, Configuration properties support constructor-based binding. The class annotates with @ConfigurationProperties annotation is to be immutable. It can be enabled by adding an annotation @ConfugurationProperties to a class or one of its constructors with @ConstructorBinding.

RSocket Support

It is a part of Spring Security. RSocket integration is auto-configured when an application finds spring-security-rsocket is present on the classpath.

Java 8, Spring Boot, database interview Questions | Capgemini Technical Mock Java Interview
Java 8, Spring Boot, database interview Questions | Capgemini Technical Mock Java Interview

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.

We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.

If you’re looking for information about a specific version, or instructions about how to upgrade from an earlier release, check out the project release notes section on our wiki.

You can also join the Spring Boot community on Gitter!

Bootstrap your application with Spring Initializr.

I was trying to create a Spring Boot 3.0.5 application, along with Java 8 in Spring Starter. Screenshot shared below

Post which I checked the Explore button which helps in identifying what code will look like.

However, I found

sourceCompatibility = '17'

I did not expect that as I had selected Java 8 in above screen. Am I missing something here?

I was trying to create a Spring Boot 3.0.5 application, along with Java 8 in Spring Starter. Screenshot shared below

Post which I checked the Explore button which helps in identifying what code will look like.

However, I found

sourceCompatibility = '17'

I did not expect that as I had selected Java 8 in above screen. Am I missing something here?

springboot-java8

The project is made on spring boot. The project summarize the new features present in Java 8. It contain list of harcoded topics list. You can call the apis’s with POSTMAN to add,delete,update Topic list In addition, it uses

  1. Java 8 NIO methods
  2. String operations
  3. Stream operations
  4. IntStream functions
  5. Functional interface
  6. Lambda functions
  7. Optional datatype
  8. Foreach loops
  9. Default and Static methods in interface
  10. Java 8 LocalDateTime API
  11. Pattern

Kết

Như đã thấy được xuyên suốt bài viết, sự ra đời của Sping Boot là điều tất yếu nhằm khắc phục được những hạn chế về cấu hình của Spring framework. Hy vọng, với một số những thông tin trong bài viết, bạn đã hiểu được Sping Boot là gì và những kiến thức cơ bản có liên quan đến nó.

Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 – 3 năm.

Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy, Adavigo, bTaskee…

Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY:

Spring Boot | Reactive Programming Complete Tutorials for Beginners | JavaTechie
Spring Boot | Reactive Programming Complete Tutorials for Beginners | JavaTechie

System Requirements

Spring Boot 3.2.2 requires Java 17 and is compatible up to and including Java 21. Spring Framework 6.1.3 or above is also required.

Explicit build support is provided for the following build tools:

Build Tool Version

Maven

3.6.3 or later

Gradle

7.x (7.5 or later) and 8.x

2.Servlet Containers

Spring Boot supports the following embedded servlet containers:

Name Servlet Version

Tomcat 10.1

6.0

Jetty 12.0

6.0

Undertow 2.3

6.0

You can also deploy Spring Boot applications to any servlet 5.0+ compatible container.

2.GraalVM Native Images

Spring Boot applications can be converted into a Native Image using GraalVM 22.3 or above.

Images can be created using the native build tools Gradle/Maven plugins or

native-image

tool provided by GraalVM.
You can also create native images using the native-image Paketo buildpack.

The following versions are supported:

Name Version

GraalVM Community

22.3

Native Build Tools

0.9.28

Installing Spring Boot

Spring Boot can be used with “classic” Java development tools or installed as a command line tool. Either way, you need Java SDK v17 or higher. Before you begin, you should check your current Java installation by using the following command:


$ java -version

If you are new to Java development or if you want to experiment with Spring Boot, you might want to try the Spring Boot CLI (Command Line Interface) first. Otherwise, read on for “classic” installation instructions.

3.Installation Instructions for the Java Developer

You can use Spring Boot in the same way as any standard Java library.
To do so, include the appropriate

spring-boot-*.jar

files on your classpath.
Spring Boot does not require any special tools integration, so you can use any IDE or text editor.
Also, there is nothing special about a Spring Boot application, so you can run and debug a Spring Boot application as you would any other Java program.

Although you could copy Spring Boot jars, we generally recommend that you use a build tool that supports dependency management (such as Maven or Gradle).

3.1.Maven Installation

Spring Boot is compatible with Apache Maven 3.6.3 or later. If you do not already have Maven installed, you can follow the instructions at maven.apache.org.

On many operating systems, Maven can be installed with a package manager.
If you use OSX Homebrew, try

Spring Boot dependencies use the

org.springframework.boot

group id.
Typically, your Maven POM file inherits from the

spring-boot-starter-parent

project and declares dependencies to one or more “Starters”.
Spring Boot also provides an optional Maven plugin to create executable jars.

More details on getting started with Spring Boot and Maven can be found in the Getting Started section of the Maven plugin’s reference guide.

3.1.Gradle Installation

Spring Boot is compatible with Gradle 7.x (7.5 or later) and 8.x. If you do not already have Gradle installed, you can follow the instructions at gradle.org.

Spring Boot dependencies can be declared by using the

org.springframework.boot


group

.
Typically, your project declares dependencies to one or more “Starters”.
Spring Boot provides a useful Gradle plugin that can be used to simplify dependency declarations and to create executable jars.

More details on getting started with Spring Boot and Gradle can be found in the Getting Started section of the Gradle plugin’s reference guide.

3.Installing the Spring Boot CLI

The Spring Boot CLI (Command Line Interface) is a command line tool that you can use to quickly prototype with Spring.

You do not need to use the CLI to work with Spring Boot, but it is a quick way to get a Spring application off the ground without an IDE.

3.2.Manual Installation

You can download the Spring CLI distribution from one of the following locations:

Once downloaded, follow the INSTALL.txt instructions from the unpacked archive.
In summary, there is a

spring

script (

spring.bat

for Windows) in a

bin/

directory in the

.zip

file.
Alternatively, you can use

java -jar

with the

.jar

file (the script helps you to be sure that the classpath is set correctly).

3.2.Installation with SDKMAN!

SDKMAN! (The Software Development Kit Manager) can be used for managing multiple versions of various binary SDKs, including Groovy and the Spring Boot CLI. Get SDKMAN! from sdkman.io and install Spring Boot by using the following commands:


$ sdk install springboot $ spring --version Spring CLI v3.2.2

If you develop features for the CLI and want access to the version you built, use the following commands:


$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-3.2.2-bin/spring-3.2.2/ $ sdk default springboot dev $ spring --version Spring CLI v3.2.2

The preceding instructions install a local instance of

spring

called the

dev

instance.
It points at your target build location, so every time you rebuild Spring Boot,

spring

is up-to-date.

You can see it by running the following command:


$ sdk ls springboot ================================================================================ Available Springboot Versions ================================================================================ > + dev * 3.2.2 ================================================================================ + - local version * - installed > - currently in use ================================================================================

3.2.OSX Homebrew Installation

If you are on a Mac and use Homebrew, you can install the Spring Boot CLI by using the following commands:


$ brew tap spring-io/tap $ brew install spring-boot

Homebrew installs

spring

to

/usr/local/bin

.

If you do not see the formula, your installation of brew might be out-of-date.
In that case, run
3.2.MacPorts Installation

If you are on a Mac and use MacPorts, you can install the Spring Boot CLI by using the following command:


$ sudo port install spring-boot-cli

3.2.Command-line Completion

The Spring Boot CLI includes scripts that provide command completion for the BASH and zsh shells.
You can

source

the script (also named

spring

) in any shell or put it in your personal or system-wide bash completion initialization.
On a Debian system, the system-wide scripts are in


/shell-completion/bash


and all scripts in that directory are executed when a new shell starts.
For example, to run the script manually if you have installed by using SDKMAN!, use the following commands:


$ . ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring $ spring

grab help jar run test version

If you install the Spring Boot CLI by using Homebrew or MacPorts, the command-line completion scripts are automatically registered with your shell.
3.2.Windows Scoop Installation

If you are on a Windows and use Scoop, you can install the Spring Boot CLI by using the following commands:

> scoop bucket add extras > scoop install springboot

Scoop installs

spring

to

~/scoop/apps/springboot/current/bin

.

If you do not see the app manifest, your installation of scoop might be out-of-date.
In that case, run
Java Interview Prep -  Spring boot and Microservices interview questions for experienced | Live Mock
Java Interview Prep – Spring boot and Microservices interview questions for experienced | Live Mock

Good resources

Bên cạnh series này còn có rất nhiều nơi khác viết bài về Spring Boot khá ok. Ví dụ như các trang sau:

  • Series “Làm chủ Spring Boot từ Zero đến Hero” của Loda.me: Trước mình làm quen với Spring Boot ở trang này, viết khá dễ hiểu và phù hợp với người mới.
  • Laptrinhjavaweb.com: trang này giúp bạn có cái nhìn tổng quan về Java web.
  • Stackjava.com: muốn tìm hiểu thêm các khía cạnh khác thì lên trang này đọc nhé.

Thêm các trang tiếng Anh nữa:

  • Baedung.com: bạn nào học lâu chắc biết trang này rồi, nhiều bài hay về Spring, bao phủ khá toàn diện. Hầu như vấn đề nào gặp phải đều có bài viết trên đây.
  • Vlad Mihalcea: ông này chuyên về xử lý database trong Java, muốn tìm hiểu sâu thì đọc.

Còn vài trang nữa như Dzone,… mà mình không liệt kê hết ở đây.

À quên nữa, nếu các bạn có thắc mắc hoặc có gì đó cần bổ sung vào series thì hãy comment bên dưới nhé. Nó sẽ giúp mình hoàn thiện series cũng như kiến thức nữa.

All rights reserved

Spring là một framework nắm vai trò quan trọng trong phát triển phần mềm, tuy nhiên chúng vẫn chứa đựng những nhược điểm nhất định. Chính vì lý do này, Spring Boot đã ra đời nhằm cải thiện những nhược điểm này và hứa hẹn mang đến nhiều sản phẩm phần mềm hoàn hảo trong tương lai. Vậy Spring Boot là gì mà có thể đem lại nhiều giá trị tuyệt vời đến như vậy? Hãy cùng chúng tôi khám phá chi tiết về thuật ngữ này tại bài viết bên dưới nhé!

Developing Your First Spring Boot Application

This section describes how to develop a small “Hello World!” web application that highlights some of Spring Boot’s key features. You can choose between Maven or Gradle as the build system.

The spring.io website contains many “Getting Started” guides that use Spring Boot. If you need to solve a specific problem, check there first.

You can shortcut the steps below by going to start.spring.io and choosing the “Web” starter from the dependencies searcher. Doing so generates a new project structure so that you can start coding right away. Check the start.spring.io user guide for more details.

4.Prerequisites

Before we begin, open a terminal and run the following commands to ensure that you have a valid version of Java installed:


$ java -version openjdk version "17.0.4.1" 2022-08-12 LTS OpenJDK Runtime Environment (build 17.0.4.1+1-LTS) OpenJDK 64-Bit Server VM (build 17.0.4.1+1-LTS, mixed mode, sharing)

This sample needs to be created in its own directory. Subsequent instructions assume that you have created a suitable directory and that it is your current directory.
4.1.Maven

If you want to use Maven, ensure that you have Maven installed:


$ mvn -v Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0) Maven home: usr/Users/developer/tools/maven/3.8.5 Java version: 17.0.4.1, vendor: BellSoft, runtime: /Users/developer/sdkman/candidates/java/17.0.4.1-librca

4.1.Gradle

If you want to use Gradle, ensure that you have Gradle installed:


$ gradle --version ------------------------------------------------------------ Gradle 8.1.1 ------------------------------------------------------------ Build time: 2023-04-21 12:31:26 UTC Revision: 1cf537a851c635c364a4214885f8b9798051175b Kotlin: 1.8.10 Groovy: 3.0.15 Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021 JVM: 17.0.7 (BellSoft 17.0.7+7-LTS) OS: Linux 6.2.12-200.fc37.aarch64 aarch64

4.Setting up the project with Maven

We need to start by creating a Maven

pom.xml

file.
The

pom.xml

is the recipe that is used to build your project.
Open your favorite text editor and add the following:



4.0.0


com.example


myproject


0.0.1-SNAPSHOT

org.springframework.boot


spring-boot-starter-parent


3.2.2

The preceding listing should give you a working build.
You can test it by running

mvn package

(for now, you can ignore the “jar will be empty – no content was marked for inclusion!” warning).

At this point, you could import the project into an IDE (most modern Java IDEs include built-in support for Maven). For simplicity, we continue to use a plain text editor for this example.

4.Setting up the project with Gradle

We need to start by creating a Gradle

build.gradle

file.
The

build.gradle

is the build script that is used to build your project.
Open your favorite text editor and add the following:


plugins { id 'java' id 'org.springframework.boot' version '3.2.2' } apply plugin: 'io.spring.dependency-management' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories { mavenCentral() } dependencies { }

The preceding listing should give you a working build.
You can test it by running

gradle classes

.

At this point, you could import the project into an IDE (most modern Java IDEs include built-in support for Gradle). For simplicity, we continue to use a plain text editor for this example.

4.Adding Classpath Dependencies

Spring Boot provides a number of “Starters” that let you add jars to your classpath. “Starters” provide dependencies that you are likely to need when developing a specific type of application.

4.4.Maven

Most Spring Boot applications use the

spring-boot-starter-parent

in the

parent

section of the POM.
The

spring-boot-starter-parent

is a special starter that provides useful Maven defaults.
It also provides a

dependency-management

section so that you can omit

version

tags for “blessed” dependencies.

Since we are developing a web application, we add a

spring-boot-starter-web

dependency.
Before that, we can look at what we currently have by running the following command:


$ mvn dependency:tree [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT

The

mvn dependency:tree

command prints a tree representation of your project dependencies.
You can see that

spring-boot-starter-parent

provides no dependencies by itself.
To add the necessary dependencies, edit your

pom.xml

and add the

spring-boot-starter-web

dependency immediately below the

parent

section:





org.springframework.boot


spring-boot-starter-web



If you run

mvn dependency:tree

again, you see that there are now a number of additional dependencies, including the Tomcat web server and Spring Boot itself.

4.4.Gradle

Most Spring Boot applications use the

org.springframework.boot

Gradle plugin.
This plugin provides useful defaults and Gradle tasks.
The

io.spring.dependency-management

Gradle plugin provides dependency management so that you can omit

version

tags for “blessed” dependencies.

Since we are developing a web application, we add a

spring-boot-starter-web

dependency.
Before that, we can look at what we currently have by running the following command:


$ gradle dependencies > Task :dependencies ------------------------------------------------------------ Root project 'myproject' ------------------------------------------------------------

The

gradle dependencies

command prints a tree representation of your project dependencies.
Right now, the project has no dependencies.
To add the necessary dependencies, edit your

build.gradle

and add the

spring-boot-starter-web

dependency in the

dependencies

section:


dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' }

If you run

gradle dependencies

again, you see that there are now a number of additional dependencies, including the Tomcat web server and Spring Boot itself.

4.Writing the Code

To finish our application, we need to create a single Java file.
By default, Maven and Gradle compile sources from

src/main/java

, so you need to create that directory structure and then add a file named

src/main/java/MyApplication.java

to contain the following code:


package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class MyApplication { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }


import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController @SpringBootApplication class MyApplication { @RequestMapping("/") fun home() = "Hello World!" } fun main(args: Array

) { runApplication

(*args) }


Although there is not much code here, quite a lot is going on. We step through the important parts in the next few sections.

4.5.The @RestController and @RequestMapping Annotations

The first annotation on our

MyApplication

class is

@RestController

.
This is known as a stereotype annotation.
It provides hints for people reading the code and for Spring that the class plays a specific role.
In this case, our class is a web

@Controller

, so Spring considers it when handling incoming web requests.

The

@RequestMapping

annotation provides “routing” information.
It tells Spring that any HTTP request with the path should be mapped to the

home

method.
The

@RestController

annotation tells Spring to render the resulting string directly back to the caller.

The
4.5.The @SpringBootApplication Annotation

The second class-level annotation is

@SpringBootApplication

.
This annotation is known as a meta-annotation, it combines

@SpringBootConfiguration

,

@EnableAutoConfiguration

and

@ComponentScan

.

Of those, the annotation we’re most interested in here is

@EnableAutoConfiguration

.

@EnableAutoConfiguration

tells Spring Boot to “guess” how you want to configure Spring, based on the jar dependencies that you have added.
Since

spring-boot-starter-web

added Tomcat and Spring MVC, the auto-configuration assumes that you are developing a web application and sets up Spring accordingly.

4.5.The “main” Method

The final part of our application is the

main

method.
This is a standard method that follows the Java convention for an application entry point.
Our main method delegates to Spring Boot’s

SpringApplication

class by calling

run

.

SpringApplication

bootstraps our application, starting Spring, which, in turn, starts the auto-configured Tomcat web server.
We need to pass

MyApplication.class

as an argument to the

run

method to tell

SpringApplication

which is the primary Spring component.
The

args

array is also passed through to expose any command-line arguments.

4.Running the Example

4.6.Maven

At this point, your application should work.
Since you used the

spring-boot-starter-parent

POM, you have a useful

run

goal that you can use to start the application.
Type

mvn spring-boot:run

from the root project directory to start the application.
You should see output similar to the following:


$ mvn spring-boot:run . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.2) ....... . . . ....... . . . (log output here) ....... . . . ........ Started MyApplication in 0.906 seconds (process running for 6.514)

If you open a web browser to

localhost:8080

, you should see the following output:

Hello World!

To gracefully exit the application, press

ctrl-c

.

4.6.Gradle

At this point, your application should work.
Since you used the

org.springframework.boot

Gradle plugin, you have a useful

bootRun

goal that you can use to start the application.
Type

gradle bootRun

from the root project directory to start the application.
You should see output similar to the following:


$ gradle bootRun . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.2) ....... . . . ....... . . . (log output here) ....... . . . ........ Started MyApplication in 0.906 seconds (process running for 6.514)

If you open a web browser to

localhost:8080

, you should see the following output:

Hello World!

To gracefully exit the application, press

ctrl-c

.

4.Creating an Executable Jar

We finish our example by creating a completely self-contained executable jar file that we could run in production. Executable jars (sometimes called “uber jars” or “fat jars”) are archives containing your compiled classes along with all of the jar dependencies that your code needs to run.

4.7.Maven

To create an executable jar, we need to add the

spring-boot-maven-plugin

to our

pom.xml

.
To do so, insert the following lines just below the

dependencies

section:



org.springframework.boot


spring-boot-maven-plugin

The

Save your

pom.xml

and run

mvn package

from the command line, as follows:


$ mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] .... .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:3.2.2:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------

If you look in the

target

directory, you should see

myproject-0.0.1-SNAPSHOT.jar

.
The file should be around 18 MB in size.
If you want to peek inside, you can use

jar tvf

, as follows:


$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar

You should also see a much smaller file named

myproject-0.0.1-SNAPSHOT.jar.original

in the

target

directory.
This is the original jar file that Maven created before it was repackaged by Spring Boot.

To run that application, use the

java -jar

command, as follows:


$ java -jar target/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.2) ....... . . . ....... . . . (log output here) ....... . . . ........ Started MyApplication in 0.999 seconds (process running for 1.253)

As before, to exit the application, press

ctrl-c

.

4.7.Gradle

To create an executable jar, we need to run

gradle bootJar

from the command line, as follows:


$ gradle bootJar BUILD SUCCESSFUL in 639ms 3 actionable tasks: 3 executed

If you look in the

build/libs

directory, you should see

myproject-0.0.1-SNAPSHOT.jar

.
The file should be around 18 MB in size.
If you want to peek inside, you can use

jar tvf

, as follows:


$ jar tvf build/libs/myproject-0.0.1-SNAPSHOT.jar

To run that application, use the

java -jar

command, as follows:


$ java -jar build/libs/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.2) ....... . . . ....... . . . (log output here) ....... . . . ........ Started MyApplication in 0.999 seconds (process running for 1.253)

As before, to exit the application, press

ctrl-c

.

Complete Java, Spring, and Microservices course
Complete Java, Spring, and Microservices course

Giới thiệu Spring Boot

1.Spring Boot là gì?

Spring là một Java framework siêu to và khổng lồ, làm được đủ mọi thứ. Nó được chia thành nhiều module, mỗi module làm một chức năng, ví dụ Spring Core, Web, Data access, AOP,… Spring được xây dựng dựa trên 2 khái niệm nền tảng là Dependency injection và AOP (Aspect Oriented Programming).

Một rắc rối khi dùng Spring là việc cấu hình (config) dự án quá phức tạp. Bạn phải làm đủ thứ việc chỉ để tạo một web HelloWorld:

  • Tạo Maven hoặc Gradle project
  • Thêm các thư viện cần thiết
  • Tạo XML để cấu hình project, cấu hình các bean
  • Code và build thành file WAR
  • Cấu hình Tomcat server để chạy được file WAR vừa build

Đấy, Spring khá mạnh mẽ nhưng việc cấu hình nghe thôi cũng mệt rồi. Do đó Spring boot ra đời, với các ưu điểm:

  • Auto config: tự động cấu hình thay cho bạn, chỉ cần bắt đầu code và chạy là được
  • Xây dựng các bean dựa trên annotation thay vì XML
  • Server Tomcat được nhúng ngay trong file JAR build ra, chỉ cần chạy ở bất kì đâu java chạy được

So sánh với Spring, thì Spring Boot bạn chỉ cần:

  • Dùng Spring Initializr, nhập các info của project, chọn thư viện rồi down code về
  • Mở source code ra và bắt đầu code
  • Chạy ngay trong IDE, hoặc build thành file JAR để chạy được ngay, không cần cấu hình server

1.Tại sao nên học Spring Boot?

Trước đây mình đã có tìm hiểu về Node.js và chuyển sang Spring Boot. Cảm nhận của mình là khi code Spring Boot chúng ta sẽ tập trung nhiều hơn vào business logic, nghĩa là mục tiêu của code làm được gì.

Với Node.js, do nó quá linh hoạt nên bạn sẽ phải tập trung nhiều vào code hơn, thay vì mục đích của code. Kiểu như bạn phải tìm “best practice”, “cách tốt nhất” để code điều gì đó.

Nhưng với Spring boot thì khác, có nhiều thư viện có sẵn và cấu trúc code cũng thành chuẩn mực rồi, nên bạn không cần quá quan tâm phải viết code thế nào cho tốt nữa, thay vào đó sẽ tập trung vào logic hơn.

Mình thấy nhiều bạn hỏi câu này: “Nên học Spring hay Spring Boot trước?”. Theo mình thì nên học Spring Boot trước.

Mình nghĩ tư tưởng của nhiều bạn vẫn mang nặng kiểu “cái cũ tốt hơn cái mới”, “tìm hiểu từ gốc”,… nhưng thực sự khi bắt đầu nên tìm hiểu cái dễ dàng hơn. Vừa đỡ nản, vừa làm được sản phẩm thực tế, trong khi với Spring bạn vẫn còn đang phải cấu hình quá nhiều và chưa làm được gì ra hồn cả.

9.1 Servlet Containers

Spring Boot supports the following embedded servlet containers:

NameServlet Version

Tomcat 9.0

4.0

Jetty 9.4

3.1

Undertow 2.0

4.0

You can also deploy Spring Boot applications to any Servlet 3.1+ compatible container.

Spring Boot Version

The latest version of Spring Boot is 2.0. It introduces a lot of new features along with some modifications and replacement.

Spring Framework and Microservices Full Course
Spring Framework and Microservices Full Course

Spring Boot là gì?

Spring Boot là một trong số các module của Spring framework chuyên cung cấp các tính năng RAD (Rapid Application Development) cho phép tạo ra và phát triển các ứng dụng độc lập dựa trên Spring một cách nhanh chóng.

Spring Boot ra đời với mục đích loại bỏ những cấu hình phức tạp của Spring, nó không yêu cầu cấu hình XML và nâng cao năng suất cho các nhà phát triển. Với sự góp mặt của Spring Boot, hệ sinh thái Spring đã trở nên mạnh mẽ, phổ biến và hiệu quả hơn bao giờ hết.

Keywords searched by users: java 8 spring boot

Java 8 Spring Boot Fast And Simple - Youtube
Java 8 Spring Boot Fast And Simple – Youtube
Học Spring Boot Bắt Đầu Từ Đâu?
Học Spring Boot Bắt Đầu Từ Đâu?
Alternative Website For Spring Initializr For Java 8? (Start.Spring.Io Now  Only Allow Java 17+) - Stack Overflow
Alternative Website For Spring Initializr For Java 8? (Start.Spring.Io Now Only Allow Java 17+) – Stack Overflow
Java 8 Spring Boot Fast And Simple - Youtube
Java 8 Spring Boot Fast And Simple – Youtube
Java 8, Microservices And Spring Boot. Fresh Insights From The Java Report  By Jrebel In 2023
Java 8, Microservices And Spring Boot. Fresh Insights From The Java Report By Jrebel In 2023
Spring Boot Quick Start 8 - Creating A Spring Boot Project - Youtube
Spring Boot Quick Start 8 – Creating A Spring Boot Project – Youtube
How To Create A Spring Boot Project In Spring Initializr And Run It In  Intellij Idea? - Geeksforgeeks
How To Create A Spring Boot Project In Spring Initializr And Run It In Intellij Idea? – Geeksforgeeks
Introduction To Spring Boot - Geeksforgeeks
Introduction To Spring Boot – Geeksforgeeks
Java 8, Spring Boot, Database Interview Questions | Capgemini Technical  Mock Java Interview - Youtube
Java 8, Spring Boot, Database Interview Questions | Capgemini Technical Mock Java Interview – Youtube
Java 8, Microservices And Spring Boot. Fresh Insights From The Java Report  By Jrebel In 2023
Java 8, Microservices And Spring Boot. Fresh Insights From The Java Report By Jrebel In 2023
Spring | Quickstart
Spring | Quickstart
Spring Boot: Tạo Ứng Dụng Java Nhanh Chóng Và Dễ Dàng
Spring Boot: Tạo Ứng Dụng Java Nhanh Chóng Và Dễ Dàng
How To Run Your First Spring Boot Application In Intellij Idea? -  Geeksforgeeks
How To Run Your First Spring Boot Application In Intellij Idea? – Geeksforgeeks
Tạo Dự Án Spring Boot Đầu Tiên
Tạo Dự Án Spring Boot Đầu Tiên

See more here: kientrucannam.vn

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *