22 Câu hỏi và câu trả lời phỏng vấn Spring Boot thường được hỏi

Spread the love

Bạn có phải là nhà phát triển Java Spring Boot đang mong chờ một cuộc phỏng vấn sắp tới nhưng không chắc chắn về những câu hỏi nào? Chúng tôi ở đây để giúp đỡ!

Bài viết này sẽ giúp bạn chuẩn bị đầy đủ bằng cách phác thảo một số câu hỏi và câu trả lời phỏng vấn Spring Boot thường gặp mà người phỏng vấn có thể sử dụng để kiểm tra bạn.

Người phỏng vấn sử dụng các câu hỏi Java Spring Boot chiến lược để kiểm tra mức độ kỹ năng của người được phỏng vấn phù hợp với vai trò được chỉ định của họ. Do đó, bạn cần chuẩn bị trước những câu hỏi liên quan và biết cách trả lời chúng.

Trước khi chuyển ngay đến các câu hỏi phỏng vấn và câu trả lời tương ứng của chúng, hãy cùng chúng tôi tìm hiểu tổng quan cơ bản về Spring Boot là gì và nó hữu ích như thế nào đối với các nhà phát triển Java.

Java Spring Boot là gì?

Khung Java này là một sáng tạo của nhóm nòng cốt vào năm 2014. Spring Boot, là một khung mã nguồn mở, phát triển hiệu quả các ứng dụng độc lập, ở cấp sản xuất và cũng có thể chạy trên Máy ảo Java (JVM).

Các nhà phát triển Java thích nó cho việc phát triển các ứng dụng web và microservices vì ​​quá trình thiết lập nhanh chóng, dễ dàng và thời gian cấu hình an toàn.

Có thể dễ dàng thiết lập và cấu hình các ứng dụng dựa trên Spring bằng Spring Boot với ba khả năng cốt lõi của nó bao gồm:

  • Tự động cấu hình – là một cấu hình tự động của ứng dụng Spring.
  • Spring Boot cung cấp một cách tiếp cận cố định đối với các mặc định cấu hình để sử dụng và các gói để cài đặt cho các phụ thuộc bắt buộc. Cách tiếp cận kiên định này giúp thiết lập nhanh chóng các dự án.
  • Sprsetupoot cho phép bạn chạy ứng dụng của mình một cách độc lập mà không cần máy chủ web.

Spring Boot hữu ích như thế nào đối với các nhà phát triển Java?

Đầu tiên, các nhà phát triển Java sử dụng Spring Boot sẽ dễ dàng hơn với cấu hình tự động của tất cả các thành phần cần thiết để phát triển một ứng dụng Spring cấp sản xuất. Điều này, về lâu dài, làm giảm thời gian phát triển và cuối cùng tăng hiệu quả của chúng.

Spring Boot cũng dễ dàng tích hợp với hệ sinh thái của Spring, bao gồm Spring JDBC, Spring Data, Spring Security và Spring ORM.

Các nhà phát triển Java cũng có thể kết nối Spring Boot với các cơ sở dữ liệu khác nhau như Oracle, MySQL, PostgreSQL và MongoDB, trong số những cơ sở dữ liệu khác.

Tất nhiên, các cấu hình linh hoạt với cấu hình XML, Java Beans và các giao dịch Cơ sở dữ liệu nằm trong số các tính năng hữu ích khác.

Vì vậy, bây giờ bạn đã có một cái nhìn tổng quan cơ bản về Spring Boot, hãy để chúng tôi xem xét một số câu hỏi và câu trả lời phỏng vấn Spring Boot thường gặp sẽ giúp bạn chuẩn bị cho cuộc phỏng vấn của mình.

Câu hỏi và câu trả lời phỏng vấn Spring Boot

Một số tính năng của Spring Boot là gì?

Một số tính năng phổ biến này bao gồm:

  • Spring Boot CLI cung cấp Groovy để viết ứng dụng Spring Boot; về lâu dài, mã bảng soạn sẵn sẽ tránh được.
  • Spring Boot cung cấp tính năng ghi nhật ký và bảo mật giúp dễ dàng bảo vệ ứng dụng của bạn khỏi các mối đe dọa bảo mật tiềm ẩn.
  • Nó cung cấp cấu hình tự động của các thành phần có liên quan cho dự án của bạn, do đó tránh rủi ro về các tệp WAR không cần thiết.
  • Trình khởi tạo khởi động đặt cấu trúc dự án nội bộ mặc định cho bạn. Bằng cách này, bạn không phải thiết lập cấu trúc dự án theo cách thủ công.
  • Tính năng bộ truyền động Spring Boot cho phép truy cập vào thông tin chi tiết và số liệu khi ứng dụng chạy.
  • Tất nhiên, một trong những tính năng chính của Spring Boot, Starter Dependency, giúp tổng hợp các phụ thuộc thường được sử dụng của một tính năng cụ thể.
  Bạn có cần Raspberry Pi 4 không? [+ 5 Online Platforms to Buy]

Spring Boot Starters là gì?

Bộ khởi động Spring Boot là các bộ mô tả phụ thuộc bao gồm một tập hợp các nhà cung cấp quản lý phụ thuộc cho phép các phụ thuộc của ứng dụng. Họ cung cấp khuôn khổ với Độ phân giải phụ thuộc tự động. Khởi động tăng cường sự phát triển dễ dàng và nhanh chóng.

Bộ truyền động trong Spring Boot là gì, và ưu điểm của nó là gì?

Bộ truyền động là một trong những tính năng của Spring Boot cho phép bạn theo dõi những gì xảy ra bên trong một ứng dụng khi nó chạy.

Ví dụ: trong quá trình gỡ lỗi, bạn có thể sử dụng bộ truyền động để phân tích nhật ký bằng cách cho phép truy cập vào các tính năng như sử dụng CPU và xác định các hạt đậu.

Ngoài ra, thiết bị truyền động không chỉ cung cấp khả năng truy cập dễ dàng vào các điểm cuối REST sẵn sàng sản xuất, theo dõi và quản lý thông tin mà còn truy xuất dữ liệu từ web.

Thymeleaf là gì và cách sử dụng thymeleaf?

Thymeleaf là mẫu phía máy chủ của Java tạo bố cục mẫu tự nhiên cho cả ứng dụng web Java Spring và HTML5.

Spring Boot sẽ thực hiện cấu hình tự động của thymeleaf bằng cách sử dụng phần phụ thuộc spring-boot-starter-thymeleaf trong tệp pom.xml để phục vụ nội dung web động.

Để cho phép Spring Boot đọc và hiển thị các mẫu thymeleaf hoặc các tệp HTML, hãy đặt các mẫu trong src / main / resources / templates.

Sau đó, Thymeleaf phân tích cú pháp tệp index.html và sử dụng các giá trị thực tế mà bạn chuyển từ lớp bộ điều khiển thay cho các giá trị động có sẵn trong tệp chỉ mục.

Sau đó, thông báo sẽ hiển thị trong trình duyệt web ngay khi ứng dụng Spring Boot chạy.

org.springframework.boot spring-boot-starter-thymeleaf

Mô tả quá trình tạo một dự án Spring Boot bằng Spring Initializer.

Spring Initializr, là một công cụ web Spring, cho phép bạn tạo một dự án Spring Boot bằng một vài bước bằng cách cung cấp các chi tiết của dự án.

  • Đi tới Spring intializr và điền vào các trường đầu vào.
  • Nhấp vào nút Tạo sẽ bắt đầu tải xuống dự án.
  • Giải nén dự án đã tải xuống từ tệp zip và mở nó từ IDE của bạn. Từ IDE, điều hướng đến Tệp-> Mới-> Dự án từ các nguồn hiện có-> Spring-boot-app, sau đó chọn tệp pom.xml. Nhấp vào lời nhắc nhập thay đổi để dự án đồng bộ hóa. Sau đó, hãy nhớ truy cập tệp application.properties và chỉnh sửa số server.port thành server.port = 7000.
  • Bây giờ, chạy ứng dụng từ src-> main-> java-> com.gfg.Spring.boot.app
  • JPA trong Spring Boot là gì?

    Đây là một đặc tả trong Java sử dụng Ánh xạ quan hệ đối tượng (ORM) để quản lý dữ liệu quan hệ và cho phép truy cập dữ liệu giữa đối tượng Java hoặc lớp Java và cơ sở dữ liệu quan hệ của ứng dụng.

    JPA sử dụng Ngôn ngữ truy vấn liên tục Java (JPQL), một ngôn ngữ truy vấn hướng đối tượng cũng độc lập với nền tảng.

    JPA cho phép xử lý truy vấn và giao dịch đối tượng dựa trên cơ sở dữ liệu bằng cách sử dụng API Trình quản lý thực thể mà nó cung cấp.

    Cấu hình tự động trong Spring Boot là gì?

    Tự động cấu hình tìm cách tự động hóa cấu hình ứng dụng Spring Boot bằng cách sử dụng các phụ thuộc jar mà bạn thêm vào các ứng dụng.

    Tùy thuộc vào các phụ thuộc có sẵn trong Classpath của ứng dụng, cấu hình tự động sẽ khai báo các đối tượng tích hợp của mô-đun dành riêng cho mùa xuân, bao gồm JPA và bảo mật mùa xuân, trong số những đối tượng khác.

    Chú thích mùa xuân là gì?

    Chú thích mùa xuân đề cập đến siêu dữ liệu cung cấp thông tin về đoạn mã chương trình và chúng thêm dữ liệu bổ sung vào chương trình đó. Các thành phần mã, bao gồm các lớp và phương thức, thường được liên kết với các chú thích.

    Chú thích không ảnh hưởng trực tiếp đến hoạt động của chương trình hoặc hành động tiếp theo của mã đã biên dịch.
    Cú pháp của chúng bắt đầu bằng ký hiệu ‘@’.

    Spring Boot cung cấp sáu loại chú thích chính bao gồm:

    • Chú thích của Spring Core
    • Chú thích dữ liệu mùa xuân
    • Chú thích của Spring Bean
    • Chú thích Web Mùa xuân
    • Chú thích lên lịch mùa xuân
    • Chú thích khởi động mùa xuân

    Spring Data REST có nghĩa là gì?

    Spring Data REST hiển thị các tài nguyên trong RESTful xung quanh Spring Data Resources bằng cách sử dụng mã tối thiểu.

    Ví dụ sau sử dụng phương thức POST để yêu cầu nội dung bằng cách sử dụng http: // localhost / example làm URL và Content-Type: application / json làm Header.

    Nội dung yêu cầu:

    {
        "name": "Jimmy",
        "Gender": "Male",
        "Age": 23
    }

    Nội dung phản hồi:

    {
        "name": "Jimmy",
        "Gender": "Male",
        "Age": 23
        "_links": {
            "self": {
                "href": "http://localhost:8080/example/1"
            },
            "person": {
                "href": "http://localhost:8080/example/1"
             }
        }
    }

    Đây là một tập hợp sâu sắc các công cụ được xác định trước có các thuộc tính được áp dụng cho các môi trường phát triển tương ứng để giúp phát triển dễ dàng hơn và tiết kiệm thời gian phát triển.

      Cách tạo nhật ký Microsoft Teams để khắc phục sự cố

    Bất cứ khi nào bạn thay đổi mã trong ứng dụng Spring Boot, tính năng Spring Boot DevTools sẽ tự động khởi động lại. Do đó, nó giúp bạn không phải khởi động lại ứng dụng theo cách thủ công mỗi khi bạn thay đổi mã của mình.

    Dữ liệu mùa xuân là gì?

    Dữ liệu mùa xuân tìm cách cung cấp cho các nhà phát triển quyền truy cập dễ dàng vào các công nghệ truy cập dữ liệu như dữ liệu quan hệ và không quan hệ và các dịch vụ dữ liệu dựa trên đám mây vì nó tiếp tục giữ các đặc điểm đặc biệt của kho dữ liệu cơ bản.

    Làm thế nào để yêu cầu một cấu hình tự động lùi lại khi một bean tồn tại?

    Ở đây bạn sẽ sử dụng chú thích @ConditionalOnMissingBean, bao gồm thuộc tính tên và giá trị như sau.

    • thuộc tính value lưu trữ loại bean để kiểm tra
    • thuộc tính name đặt tên bean cần kiểm tra

    Làm cách nào để tìm nạp dữ liệu từ cơ sở dữ liệu trong Spring Boot?

    Chúng tôi có thể truy cập dữ liệu từ cơ sở dữ liệu MySQL vào ứng dụng Spring Boot của chúng tôi bằng cách sử dụng các bước sau.

    Bước 1: Sử dụng lệnh create DATABASE person để tạo cơ sở dữ liệu trong MySQL.

    Bước 2: Trong cơ sở dữ liệu, tạo một bảng:

    CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));

    Bước 3: Bây giờ tạo một ứng dụng Spring Boot, sau đó thêm vào nó JDBC, MySQL và các phụ thuộc web bắt buộc.

    Bước 4: Cấu hình cơ sở dữ liệu từ tệp application.properties như bên dưới.

    spring.datasource.url=jdbc:mysql://localhost:3306/personDetails
    spring.datasource.username=example123
    spring.datasource.password=example123
    spring.jpa.hibernate.ddl-auto=create-drop

    Bước 5: Tiếp theo, hãy xử lý các yêu cầu trong lớp bộ điều khiển:

    package com.person;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.web.bind.annotation.RestController;
    @RestController
    public class JdbcController {
       @Autowired
       JdbcTemplate jdbc;
       @RequestMapping("/save")
       public String index(){
          jdbc.execute("insert into person (name)values(Trial)");
          return "Name entered Successfully";
       }
    }

    Cuối cùng, hãy chạy ứng dụng của bạn khi bạn kiểm tra mục nhập cơ sở dữ liệu để xem dữ liệu được truy cập.

    Tại sao chúng ta cần Hồ sơ mùa xuân?

    Hồ sơ mùa xuân cho phép phân tách cấu hình của một ứng dụng thành các phần khác nhau và tận dụng chúng cho những phát triển cụ thể.

    Hồ sơ mùa xuân cũng giúp nhà phát triển không phải quản lý các cấu hình bên ngoài theo môi trường cụ thể nếu Hồ sơ mùa xuân không có sẵn.

    Ngoài ra, điều này sẽ gây khó khăn cho việc đồng bộ hóa và có nghĩa là cần phải viết thêm một số thành phần giống như nhà máy sản xuất để tận dụng những thứ cần thiết nhất định tùy thuộc vào các thông số môi trường cụ thể.

    Chúng tôi có thể thay đổi cổng của máy chủ Tomcat nhúng trong khởi động mùa xuân không?

    Có, chúng tôi có thể.

    Điều này được thực hiện bằng cách thao tác với tệp application.properties để bao gồm thuộc tính server.port và gán cho nó một cổng bạn chọn. Spring Boot tự động tải tệp thuộc tính ứng dụng và áp dụng các cấu hình cần thiết cho ứng dụng.

    Ví dụ: bạn có thể thay đổi số server.port từ giá trị mặc định là 8080 thành server.port = 8081.

    Làm thế nào để bạn cấu hình Log4j để ghi nhật ký?

    Với một vài bước đơn giản, chúng ta có thể cấu hình Log4j để ghi nhật ký:

  • Đầu tiên, tạo dự án Java của bạn, sau đó nhấp chuột phải vào dự án. Điều hướng đến MyEclipse-> File-> New-> Java Project để đặt tên cho dự án và nhấp vào kết thúc.
  • Tiếp theo, nhấp chuột phải vào tên dự án Java của bạn và chọn Build Path -> Configure Build Path. Bước này sẽ thêm tệp log4j.
  • Điều hướng đến thư viện và nhấp vào nút Thêm JARS bên ngoài và chọn tệp log4j từ trình đơn thả xuống xuất hiện. Sau đó bấm OK.
  • Tạo một tệp java mới, bạn sẽ gọi tệp log4j.properties, sau đó nhấp vào kết thúc và thêm tệp này vào Classpath.
  • Nhấp vào Nâng cao từ Classpath, sau đó chọn tùy chọn Thêm thư mục và nhớ nhấp vào OK.
  • Bây giờ bạn có thể tìm kiếm tệp log4j.properties, nhấp vào OK và chạy dự án.
  • Kiểm tra bảng điều khiển cho đầu ra bên dưới.
  • [main] DEBUG Example – Hello this is a debug message
    [main] INFO Example – Hello this is an info message

    Container IoC là gì?

    Vùng chứa IoC (Inversion of Control) là một vùng chứa Spring cốt lõi tự động thực hiện việc tiêm phụ thuộc. Nó khởi tạo ứng dụng của lớp và chịu trách nhiệm về cấu hình của đối tượng và tập hợp các phụ thuộc cần thiết.

    Nó cũng quản lý vòng đời của đối tượng từ khi khởi tạo cho đến khi bị phá hủy.

    IoC thực hiện các tác vụ này bằng cách sử dụng cấu hình siêu dữ liệu trong mã Java, XML và chú thích Java.

    Vùng chứa được gọi là Đảo ngược điều khiển vì nó điều khiển các đối tượng Java và vòng đời của các đối tượng này. Mặt khác, đây là nhiệm vụ của nhà phát triển.

      Tiện ích bổ sung Google Trang tính tốt nhất

    Giải thích cách tạo ứng dụng Spring Boot bằng Maven

    Quá trình này đòi hỏi một loạt các bước.

    Bước 1: Chọn loại dự án.

    Bước 2: Đặt tên cho dự án của bạn để cấu hình, sau đó nhấp vào nút kết thúc để tạo dự án.

    Bước 3: Bây giờ, chúng ta sẽ cấu hình tệp pom.xml từ dự án Maven để tạo dự án Spring Boot từ nó.

    tệp pom.xml:

    <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  
      <modelVersion>4.0.0</modelVersion>  
      <groupId>com.javatpoint</groupId>  
      <artifactId>spring-boot-example</artifactId>  
      <version>0.0.1-SNAPS<name>JavaTpoint Spring Boot Example</name>  
    </project>  

    Cấu hình liên quan đến việc bổ sung cha mẹ vào dự án Maven. Điều này sẽ khai báo dự án Maven là một dự án con đối với dự án mẹ.

    <parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>1.4.2.RELEASE</version>  
    </parent>  

    Bước 4: Tiếp theo, thêm phần phụ thuộc web, spring-boot-starter-web, vào pom.xml.

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

    Bước 5: Thêm phiên bản Java của dự án.

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

    Bước 6: Lưu ý rằng mỗi khi bạn thêm các phụ thuộc mới, bạn cần phải cập nhật dự án Maven.

    Bước 7: Làm cho dự án Maven có thể chạy được bằng cách tạo một lớp Java trong gói src / main / java.

    Bước 8: Tiếp theo, gọi phương thức chạy tĩnh của lớp ứng dụng Spring.

    Bước 9: Cuối cùng, chạy lớp dưới dạng ứng dụng Java.

    Ưu điểm của Spring Boot so với Spring là gì?

    • Khả năng khởi động của Spring Boot để biên dịch ngôn ngữ nguồn bằng cách sử dụng bộ khởi động Boot, một kỹ thuật được gọi là bootstrapping, cho phép tiết kiệm dung lượng trên thiết bị của người dùng và cũng giảm thời gian tải của ứng dụng.
    • Không giống như Spring, Spring Boot cho phép quản lý các phần phụ thuộc sau khi thêm các phần phụ thuộc vào spring-boot mà không phụ thuộc vào tệp POM gốc (mô hình đối tượng mẹ) hoặc tệp XML.
    • Spring Boot cũng cho phép các nhà phát triển sử dụng chú thích hoặc cấu hình XML mà không cần sử dụng cấu hình XML.
    • Các nhà phát triển thích Spring Boot hơn vì mã soạn sẵn được giảm thiểu cần thiết để thiết lập một ứng dụng. Điều này là do Spring Boot đi kèm với cơ sở dữ liệu trong bộ nhớ và một máy chủ Tomcat được nhúng, làm giảm mã soạn sẵn. Mặt khác, Spring có nhiều mã soạn sẵn hơn.
    • Spring Boot không nhất thiết yêu cầu các tệp WAR (tài nguyên ứng dụng web) và chỉ có thể dựa vào JAR (Tài nguyên Java), có cấu trúc nhỏ và đơn giản hơn, do đó hữu ích hơn cho người dùng và nhà phát triển.
    • Spring Boot cũng tự động nhúng các máy chủ như Tomcat và Jetty; do đó, nhà phát triển không cần phải thiết lập máy chủ theo cách thủ công như bạn phải làm trong Spring.

    Quá trình phân trang chia dữ liệu thành các phần để tiết kiệm tài nguyên. Nó bao gồm hai trường, kích thước trang và số trang.

    Quy trình này bao gồm một số bước, bao gồm:

    Bước 1: Thiết lập ban đầu
    Thực thể Consisetupn, chúng tôi sẽ đặt tên Person là lớp miền.

    @Entity 
    public class Person {
        @Id
        private long id;
        private String name; 
    }

    Bước 2: Tạo kho lưu trữ
    Tiếp theo, sử dụng một PersonRepository mở rộng PagingAndSortingRepository để có thể lấy các phương thức findAll (Có thể phân trang được) và findAll (Sắp xếp sắp xếp) để phân trang và sắp xếp tương ứng.

    public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> {
        List<Product> findAllByPrice(double price, Pageable pageable);
    }

    Bước 3: Bước phân trang
    Bước đầu tiên ở đây liên quan đến việc tạo một đối tượng PageRequest; bằng cách chuyển số trang và kích thước trang theo yêu cầu để triển khai giao diện Có thể gắn thẻ.

    Pageable firstPageWithTwoElements = PageRequest.of(0,2);
    Pageable secondPageWithThreeElements = PageRequest.of(1,3);

    Sau đó, chuyển đối tượng PageRequest này vào phương thức kho lưu trữ dưới dạng tham số.

    Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements);
    List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements) 

    Theo mặc định, phương thức findAll (Có thể phân trang được) sẽ trả về một đối tượng Trang .

    Giải thích cách đăng ký cấu hình tự động tùy chỉnh

    Trong tệp @EnableAutoConfiguration key META-INF / spring.factories, hãy đề cập đến tên đủ điều kiện. Bước này đăng ký lớp cấu hình tự động.

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration

    Việc xây dựng dự án bằng Maven sẽ yêu cầu bạn đặt tệp vào thư mục resources / META-INF.

    Bootstrapping trong Spring Boot là gì?

    Bootstrapping là quá trình thực thi logic trong ứng dụng Spring Boot khi khởi động.
    Trình khởi động Boot biên dịch ngôn ngữ nguồn trong Spring Boot. Quá trình này giúp tiết kiệm không gian thiết bị và cũng giảm thời gian tải ứng dụng.

    Lời cuối 👨‍💻

    Vâng, bài viết này đề cập đến một số câu hỏi của Spring Boot mà người phỏng vấn có thể sẽ hỏi bạn trong cuộc phỏng vấn và câu trả lời để giúp bạn tự tin vượt qua nó. Chúng tôi hy vọng bạn sẽ đạt được công việc mơ ước đó!

    Bạn cũng có thể muốn tìm hiểu một vài mẹo có liên quan từ các câu hỏi được hỏi trong một cuộc phỏng vấn Java.

    Chúc may mắn! 🙂

    x