22 често задавани въпроси и отговори за интервю за Spring Boot

Вие сте разработчик на Java Spring Boot и очаквате с нетърпение да участвате в предстоящо интервю, но не сте сигурни какви въпроси да очаквате? Ние сме тук, за да помогнем!

Тази статия ще ви помогне да се подготвите адекватно, като очертае няколко често задавани въпроса за интервю за Spring Boot и отговори, които интервюиращите могат да използват, за да ви тестват.

Интервюиращите използват стратегически въпроси за Java Spring Boot, за да тестват нивата на умения на интервюираните, свързани с определената им роля. Затова трябва да се подготвите с подходящи въпроси и да знаете как да им отговорите.

Преди да преминем направо към въпросите за интервюто и съответните им отговори, нека разгледаме основен преглед на това какво е Spring Boot и колко полезен е за разработчиците на Java.

Съдържание

Какво е Java Spring Boot?

Тази рамка на Java е създадена от основния екип през 2014 г. Spring Boot, която е рамка с отворен код, ефективно разработва приложения, които са независими, производствен клас и могат също да работят на Java Virtual Machine (JVM).

Разработчиците на Java го предпочитат за разработка на уеб приложения и микроуслуги заради бързия и лесен процес на настройка и безопасно време за конфигуриране.

Лесната настройка и конфигурация на Spring-базираните приложения от Spring Boot са възможни с неговите три основни възможности, които включват:

  • Autoconfiguration – което е автоматична конфигурация на приложението Spring.
  • Spring Boot предоставя самоуверен подход към конфигурацията по подразбиране, която да се използва, и пакетите, които да се инсталират за необходимите зависимости. Този убеден подход помага за бързото настройване на проектите.
  • Sprsetupoot ви позволява независимо да стартирате вашето приложение, без да е необходим уеб сървър.

Как Spring Boot е полезен за разработчиците на Java?

От една страна, разработчиците на Java, използващи Spring Boot, имат по-лесно с автоматичното конфигуриране на всички компоненти, необходими за разработване на пролетно приложение от производствен клас. Това в дългосрочен план намалява времето за разработка и в крайна сметка повишава тяхната ефективност.

Spring Boot също лесно се интегрира с екосистемата на Spring, която включва Spring JDBC, Spring Data, Spring Security и Spring ORM.

Разработчиците на Java могат също да свържат Spring Boot с различни бази данни като Oracle, MySQL, PostgreSQL и MongoDB, наред с други.

Разбира се, сред другите полезни функции са гъвкави конфигурации с XML конфигурации, Java Beans и транзакции с бази данни.

Ето защо, сега, когато имате основен преглед на Spring Boot, нека разгледаме някои от често задаваните въпроси и отговори за интервю за Spring Boot, които ще ви помогнат да се подготвите за вашето интервю.

Въпроси и отговори за интервю за Spring Boot

Какви са някои функции на Spring Boot?

Някои от тези популярни функции включват:

  • Spring Boot CLI предоставя Groovy за писане на приложението Spring Boot; в дългосрочен план шаблонният код се избягва.
  • Spring Boot осигурява регистриране и функция за сигурност, която лесно предпазва вашето приложение от потенциални заплахи за сигурността.
  • Той осигурява автоматично конфигуриране на съответните компоненти за вашия проект, като по този начин избягва риска от ненужни WAR файлове.
  • Стартовият инициализатор определя вътрешна структура на проекта по подразбиране за вас. По този начин не е необходимо ръчно да настройвате структурата на проекта.
  • Функцията за задвижване Spring Boot дава достъп до прозрения и показатели, докато приложението работи.
  • Разбира се, една от ключовите функции на Spring Boot, Starter Dependency, помага да се агрегират често използваните зависимости на определена функция.
  Сканирайте и редактирайте масово отпечатани снимки на вашия iPhone с помощта на Pic Scanner

Какво представляват Spring Boot Starters?

Spring Boot starters са дескриптори на зависимости, които включват набор от доставчици за управление на зависимости, които позволяват зависимостите на приложението. Те предоставят рамката с разрешаване на автоматична зависимост. Стартерите подобряват лесното и бързо развитие.

Какво е задвижващ механизъм в Spring Boot и какви са неговите предимства?

Актуаторът е една от функциите на Spring Boot, която ви позволява да наблюдавате какво се случва вътре в приложението, докато работи.

По време на отстраняване на грешки, например, можете да използвате задвижващия механизъм за анализиране на регистрационни файлове, като позволява достъп до функции като използване на процесора и идентифициране на зърна.

Освен това, задвижващият механизъм не само осигурява лесен достъп до готовите за производство REST крайни точки, които наблюдават и управляват информация, но също така извлича данни от мрежата.

Какво е thymeleaf и как да използвате thymeleaf?

Thymeleaf е сървърният шаблон на Java, който създава естествено оформление на шаблон както за Spring, така и за HTML5 Java уеб приложения.

Spring Boot ще извърши автоматична конфигурация на thymeleaf, използвайки зависимостта spring-boot-starter-thymeleaf във файла pom.xml, за да обслужва динамичното уеб съдържание.

За да позволите на Spring Boot да чете и изобразява шаблоните на thymeleaf или HTML файловете, поставете шаблоните в src/main/resources/templates.

След това Thymeleaf анализира файла index.html и използва действителните стойности, които предавате от класа на контролера, вместо динамичните стойности, налични в индексния файл.

След това съобщението се изобразява в уеб браузъра веднага щом стартира приложението Spring Boot.

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

Опишете процеса на създаване на Spring Boot проект с помощта на Spring Initializer.

Spring Initializr, който е уеб инструмент на Spring, ви позволява да създадете проект за Spring Boot, като използвате няколко стъпки, като предоставяте подробности за проекта.

  • Преминете към Spring intializr и попълнете полетата за въвеждане.
  • Щракването върху бутона Генериране ще започне изтеглянето на проекта.
  • Извлечете изтегления проект от zip файла и го отворете от вашата IDE. От IDE навигирайте до File->New->Project from existing sources->Spring-boot-app, след което изберете файла pom.xml. Щракнете върху подканата за импортиране на промените, така че проектът да се синхронизира. След това не забравяйте да отидете до файла application.properties и да редактирате номера на server.port на server.port=7000.
  • Сега стартирайте приложението от src->main->java->com.gfg.Spring.boot.app
  • Какво е JPA в Spring Boot?

    Това е спецификация в Java, която използва Object-Relation Mapping (ORM) за управление на релационни данни и позволява достъп до данни между Java обекта или Java класа и релационната база данни на приложението.

    JPA използва Java Persistent Query Language (JPQL), обектно-ориентиран език за заявки, който също е независим от платформата.

    JPA позволява обработка на заявки и обектни транзакции срещу базата данни с помощта на API на Entity Manager, който предоставя.

    Какво е автоматична конфигурация в Spring Boot?

    Автоматичното конфигуриране се стреми да автоматизира конфигурацията на приложението Spring Boot, като използва зависимостите от jar, които добавяте към приложенията.

    В зависимост от наличните зависимости в Classpath на приложението, автоматичното конфигуриране ще декларира вградените обекти на модула, специфичен за пролетта, включително JPA и сигурността на пролетта, между другото.

    Какво представляват пролетните анотации?

    Пролетните анотации се отнасят до метаданни, предлагащи информация за програмен фрагмент, и добавят допълнителни данни към тази програма. Компонентите на кода, включително класове и методи, често са свързани с анотации.

    Анотациите не засягат пряко работата на програмата или последващото действие на компилирания код.
    Синтаксисът им започва със символа ‘@’.

      Python Tuple срещу List: Прилики и разлики, обяснени

    Spring Boot предоставя шест основни типа анотации, които включват:

    • Анотации на Spring Core
    • Пролетни анотации за данни
    • Анотации за пролетен боб
    • Пролетни уеб анотации
    • Анотации за пролетно планиране
    • Анотации за пролетно зареждане

    Какво означава Spring Data REST?

    Spring Data REST разкрива ресурсите в RESTful, които са около Spring Data Resources, като използва минимален код.

    Следващият пример използва метода POST за заявка на съдържание, използвайки http://localhost/example като URL адрес и Content-Type: application/json като Header.

    Заявка за съдържание:

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

    Съдържание на отговора:

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

    Това са задълбочен набор от предварително дефинирани инструменти, чиито свойства се прилагат към съответните среди за разработка, за да улеснят разработката и спестят време за разработка.

    Всеки път, когато промените кода в приложението Spring Boot, функцията Spring Boot DevTools автоматично се рестартира. Следователно ви спестява ръчното рестартиране на приложението всеки път, когато промените кода си.

    Какво е Spring Data?

    Spring data се стреми да даде на разработчиците лесен достъп до технологии за достъп до данни като релационни и нерелационни данни и услуги за данни, базирани на облак, тъй като продължава да поддържа специалните характеристики на основния хранилище на данни.

    Как да кажа на автоматична конфигурация да се оттегли, когато съществува bean?

    Тук ще използвате анотацията @ConditionalOnMissingBean, която включва атрибута име и стойност, както следва.

    • атрибутът стойност съхранява вида на компонента за проверка
    • атрибут name, който наименува зърна за проверка

    Как да извлека данни от базата данни в Spring Boot?

    Можем да получим достъп до данни от MySQL база данни до нашето приложение Spring Boot, като използваме следните стъпки.

    Стъпка 1: Използвайте командата create DATABASE person, за да създадете базата данни в MySQL.

    Стъпка 2: В базата данни създайте таблица:

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

    Стъпка 3: Сега създайте Spring Boot приложение, след което добавете към него JDBC, MySQL и необходимите уеб зависимости.

    Стъпка 4: Конфигурирайте базата данни от файла application.properties, както е показано по-долу.

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

    Стъпка 5: След това нека обработваме заявки в класа на контролера:

    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";
       }
    }

    И накрая, стартирайте приложението си, докато проверявате записа в базата данни, за да видите достъпните данни.

    Защо имаме нужда от пролетни профили?

    Пролетните профили позволяват разделянето на конфигурацията на приложението на различни части и ги използват за конкретни разработки.

    Spring Profiles също спестява на разработчика болката от управлението на специфични за средата външни конфигурации, ако Spring Profiles не са налични.

    Освен това, това би затруднило поддържането на синхрон и би означавало допълнителната необходимост да се напишат няколко компонента, подобни на фабричните, които биха се възползвали от определени необходими неща в зависимост от конкретни параметри, специфични за средата.

    Можем ли да променим порта на вградения Tomcat сървър при зареждане на Spring?

    Да, можем.

    Това става чрез манипулиране на файла application.properties, за да включите свойството server.port и му присвоите порт по ваш избор. Spring Boot автоматично зарежда файла със свойствата на приложението и прилага необходимите конфигурации към приложението.

    Например, можете да промените номера на server.port от стойността по подразбиране 8080 на server.port= 8081.

    Как конфигурирате Log4j за регистриране?

    С тези няколко прости стъпки можем да конфигурираме Log4j за регистриране:

  • Първо създайте своя Java проект, след което щракнете с десния бутон върху проекта. Отидете до MyEclipse->File->New->Java Project, за да наименувате проекта и щракнете върху Finish.
  • След това щракнете с десния бутон върху името на вашия Java проект и изберете Build Path -> Configure Build Path. Тази стъпка ще добави файла log4j.
  • Отидете до библиотеката и щракнете върху бутона Добавяне на външен JARS и изберете файла log4j от падащото меню, което се показва. След това щракнете върху OK.
  • Създайте нов java файл, който ще извикате файл log4j.properties, след което щракнете върху Готово и добавете този файл към Classpath.
  • Щракнете върху Advanced от Classpath, след това изберете опцията Add Folders и не забравяйте да щракнете върху OK.
  • Вече можете да потърсите файла log4j.properties, щракнете върху OK и стартирайте проекта.
  • Проверете конзолата за изхода по-долу.
  • [main] DEBUG Example – Hello this is a debug message
    [main] INFO Example – Hello this is an info message

    Какво е IoC контейнер?

    IoC (Inversion of Control) контейнерът е основен Spring контейнер, който автоматично прилага инжектиране на зависимости. Той инстанцира приложението на класа и отговаря за конфигурацията на обектите и сглобяването на необходимите зависимости.

      6 най-добри инструменти за информация за сигурност и управление на събития (SIEM), които си струва да проверите през 2020 г

    Той също така управлява жизнения цикъл на обекта от неговото създаване до неговото унищожаване.

    IoC изпълнява тези задачи, използвайки конфигурация на метаданни в Java код, XML и анотации на Java.

    Контейнерът се нарича инверсия на контрола, защото контролира Java обектите и жизнените цикли на тези обекти. Това иначе е задача на разработчика.

    Обяснете как да създадете Spring Boot приложение с помощта на Maven

    Този процес включва поредица от стъпки.

    Стъпка 1: Изберете вида на проекта.

    Стъпка 2: Наименувайте проекта си, за да го конфигурирате, след което щракнете върху бутона за край, за да създадете проекта.

    Стъпка 3: Сега ще конфигурираме файла pom.xml от проекта Maven, за да създадем Spring Boot проект от него.

    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>  

    Конфигурацията включва добавяне на родител към проекта Maven. Това ще декларира проекта Maven като дъщерен проект на родителския проект.

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

    Стъпка 4: След това добавете уеб зависимостта, spring-boot-starter-web, към pom.xml.

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

    Стъпка 5: Добавете Java версията на проекта.

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

    Стъпка 6: Имайте предвид, че всеки път, когато добавяте нови зависимости, трябва да актуализирате проекта Maven.

    Стъпка 7: Направете проекта Maven работещ, като създадете Java клас в пакета src/main/java.

    Стъпка 8: След това извикайте статичен метод за изпълнение на класа на приложението Spring.

    Стъпка 9: И накрая, стартирайте класа като Java приложение.

    Какви са предимствата на Spring Boot пред Spring?

    • Възможността за стартиране на Spring Boot за компилиране на изходния език с помощта на Boot initializer, техника, наречена bootstrapping, позволява спестяване на място на устройствата на потребителите и също така намалява времето за зареждане на приложението.
    • За разлика от Spring, Spring Boot позволява управление на зависимостите след добавяне на spring-boot-dependencies, без да зависи от родителския POM (родителски обектен модел) или XML файла.
    • Spring Boot също позволява на разработчиците да използват анотации или XML конфигурации, без да е необходимо да използват XML конфигурации.
    • Разработчиците предпочитат Spring Boot заради намаления му шаблонен код, необходим за настройка на приложение. Това е така, защото Spring Boot идва с база данни в паметта и вграден Tomcat сървър, намалявайки шаблонния код. Spring, от друга страна, има повече шаблонен код.
    • Spring Boot не изисква непременно WAR (ресурс на уеб приложение) файлове и може да разчита само на JAR (Java ресурс), който има малка и по-проста структура и следователно е по-полезен за потребителите и разработчиците.
    • Spring Boot също автоматично вгражда сървъри като Tomcat и Jetty; следователно разработчикът не трябва ръчно да настройва сървъра, както се предполага, че трябва да направите през пролетта.

    Процесът на страниране разделя данните на секции, за да пести ресурси. Това включва две полета, размер на страницата и номер на страница.

    Процесът включва няколко стъпки, включително:

    Стъпка 1: Първоначална настройка
    Consisetupn обект ще назовем Person като домейн клас.

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

    Стъпка 2: Създаване на хранилище
    След това използвайте PersonRepository разширява PagingAndSortingRepository, за да можете да получите методите findAll(Pageable pageable) и findAll(Sort sort) съответно за страниране и сортиране.

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

    Стъпка 3: Стъпка на пагиниране
    Първата стъпка тук включва създаване на PageRequest обект; чрез предаване на номера на страницата и размера на страницата, както е поискано, което имплементира Pageable интерфейса.

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

    След това предайте този PageRequest обект на метода на хранилището като параметър.

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

    По подразбиране методът findAll(Pageable pageable) ще върне обект Page.

    Обяснете как да регистрирате персонализирана автоматична конфигурация

    Под файла с ключ @EnableAutoConfiguration META-INF/spring.factories споменете пълното име. Тази стъпка регистрира класа за автоматично конфигуриране.

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

    Изграждането на проекта с помощта на Maven ще изисква да поставите файла в директорията ресурси/META-INF.

    Какво е стартиране в Spring Boot?

    Bootstrapping е процес на изпълнение на логика в приложението Spring Boot при стартиране.
    Boot initializr компилира изходния език в Spring Boot. Този процес спестява място на устройството и също така намалява времето за зареждане на приложението.

    Последни думи 👨‍💻

    Е, тази статия обхваща някои въпроси за Spring Boot, които интервюиращите вероятно ще ви зададат по време на интервюто и отговорите, които ще ви помогнат да се справите уверено. Надяваме се да намерите мечтаната работа!

    Може също да искате да научите няколко подходящи съвета от въпроси, зададени по време на интервю за Java.

    Успех!🙂