CodeGym /Java блог /Случаен /Част 8. Нека напишем малко приложение с помощта на Spring...
John Squirrels
Ниво
San Francisco

Част 8. Нека напишем малко приложение с помощта на Spring Boot

Публикувано в групата
Този материал е заключителната част от поредицата "Въведение в развитието на предприятията". Предишни статии: Част 8. Нека напишем малко приложение с помощта на Spring Boot - 1Нека да разгледаме най-простата реализация на MVC, използвайки Spring MVC като пример. За да направим това, ще напишем малко приложение Hello World, използвайки Spring Boot. Ще ви дам инструкции стъпка по стъпка, за да можете да повторите всичко сами. Първо ще напишем малко приложение и след това ще го анализираме.

Стъпка 1. Създаване на Spring Boot приложение в IntelliJ IDEA.

Използвайте File -> New -> Project…, за да създадете нов проект. В прозореца, който се отваря, в менюто отляво изберете Spring Initializr и изберете Project SDK. Оставете опцията по подразбиране за URL address на услугата Initializr. Част 8. Нека напишем малко приложение с помощта на Spring Boot - 2Кликнете върху бутона "Напред". В следващия прозорец трябва да изберем настройките на проекта. Ще имаме проект на Maven. Изберете Maven Project като тип. Попълнете полетата Група и Артефакт Щракнете върху Напред. Част 8. Нека напишем малко приложение с помощта на Spring Boot - 3В следващия прозорец трябва да изберем компонентите на Spring Framework, които ще използваме. Две са ни достатъчни:
  • Spring Web е компонент, който ни позволява да създаваме уеб applications. Този компонент включва Spring MVC.
  • Thymeleaf е нашата машина за шаблони. Това е нещо, което ни позволява да изпращаме данни от Java към HTML страници
Част 8. Нека напишем малко приложение с помощта на Spring Boot - 4Част 8. Нека напишем малко приложение с помощта на Spring Boot - 5В следващия прозорец изберете името на проекта и местоположението му във файловата система: Част 8. Нека напишем малко приложение с помощта на Spring Boot - 6Щракнете върху бутона „Край“. Проектът е създаден. Завършваме със следната структура на проекта: Част 8. Нека напишем малко приложение с помощта на Spring Boot - 7Тук се интересуваме от 2 file: pom.xml (дескриптор за разполагане). Това нещо ви позволява бързо и лесно да импортирате библиотеки от различни рамки в нашия проект. Това е и мястото, където конфигурираме How е изградено нашето приложение. Нашето приложение е създадено с помощта на Maven и pom.xml е конфигурационният файл за тази система за изграждане. Java класът е MvcDemoApplication. Това е основният клас на нашето приложение. От него ще стартираме нашия проект Spring Boot. За да започнете, просто стартирайте основния метод на този клас. Ето codeа за този клас, Howто и file pom.xml: MvcDemoApplication:

@SpringBootApplication
public class MvcDemoApplication {

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

}
pom.xml:

<?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.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.codegym/groupId>
    <artifactId>mvc_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mvc_demo</name>
    <description>Spring MVC Demo</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>

Стъпка 2. Създаване на уеб page

Нашето приложение ще бъде изключително просто. Ще имаме главна page (index.html), която ще съдържа връзка към началната page (greeting.html). На поздравителната page показваме поздрав. Ще използваме URL параметри, за да предадем името, което ще се използва в поздрава, към pageта greeting.html. Нека създадем главната page на нашето приложение — index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Main page</title>
</head>
<body>
    <p>Get your greeting <a href="/greeting">here</a></p>
</body>
</html>
Сега ще създадем pageта greeting.html:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
Нашата page има <p th:text="'Hello, ' + ${name} + '!'" />таг, който не е нормален за HTML. Атрибутът thна pетикета е механизъм, използван от машината за шаблони Thymeleaf. Стойността pна тага ще бъде "Здравей, " + стойността на nameпроменливата, която ще зададем в codeа на Java.

Стъпка 3. Създаване на контролер

Вътре в пакета mvc_demo ще създадем контролен пакет, в който ще създадем нашия контролер HelloWorldController:

@Controller
public class HelloWorldController {

   @RequestMapping(value = "/greeting")
   public String helloWorldController(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
       model.addAttribute("name", name);
       return "greeting";
   }

}
От една страна има много малко code, но от друга страна се случва много. Да започнем нашия анализ. Анотацията @Controller показва, че този клас е контролер. През пролетта контролерите обработват HTTP заявки, насочени към конкретни URL addressи. Нашият клас има метод helloWorldController, който е маркиран с анотацията @RequestMapping(value = "/greeting"). Тази анотация показва, че този метод обработва HTTP GET заявки, насочени към /greeting URL. С други думи, този метод ще бъде извикан, ако някой навигира до /greeting. Този метод връща String. Според Spring MVC методът на контролера трябва да върне името на изгледа. След това Spring ще потърси HTML файл със същото име, който ще върне като отговор на HTTP заявката. Както виждаш, Нашият метод приема 2 аргумента. Нека да ги разгледаме: Параметър 1: @RequestParam(name = "name", required = false, defaultValue = "World") Име на низ. Анотацията @RequestParam показва, че параметърът String name е URL параметър. Ако анотацията показва, че този URL параметър е незадължителен (задължителен = false), тогава ако липсва, стойността на параметъра за име на низ ще бъде „World“ (defaultValue = „World“). Ако е налице, тогава URL параметърът ще бъде "име" (име = "име"). Тук може да има много неща, които не разбирате. Нека дадем няколко примера. Таблицата по-долу показва Howва ще бъде стойността на параметъра String name с различни опции за достъп до /greeting (със и без URL параметри)
Примерен URL address Стойност на име на низ
/поздрав Свят
/greeting?name=Амиго Амиго
/поздрав?име=Зор Зор
Параметър 2: Вторият параметър е модел модел. Този параметър е няHowъв модел. Този модел се състои от различни вътрешни атрибути. Всеки атрибут има име и стойност. Нещо като двойки ключ-стойност. Можем да използваме този параметър, за да изпращаме данни от Java code към HTML страници. Или, използвайки терминологията на MVC, изпратете данни от модела към изгледа. Остава само да разгледаме последния ред. Това е начинът, по който изпращаме данни от Java към HTML or от модела към изгледа. Методът включва следния ред: model.addAttribute("name", name); Тук създаваме нов атрибут, наречен name, и му присвояваме стойността на параметъра name. Не забравяйте, че наскоро обсъдихме <p th:text = "'Hello,' + ${name} + '!'" /> Казахме, че стойността на тага p е "Здравейте, " + стойността на променливата име, която ще зададем в codeа на Java. Задаваме тази стойност с помощта на линията model.addAttribute("name", name);

Стъпка 5. Бягайте

За да започнем, трябва да изпълним основния метод на класа MvcDemoApplication: Част 8. Нека напишем малко приложение с помощта на Spring Boot - 9В регистрационните файлове ще видим, че нашето уеб приложение е стартирано на порт 8080: Част 8. Нека напишем малко приложение с помощта на Spring Boot - 10И това означава, че в браузър можем да отидем на pageта на http:// localhost:8080 : Част 8. Нека напишем малко приложение с помощта на Spring Boot - 11Тук имаме pageта index.html. Нека последваме връзката към поздравителната page: Част 8. Нека напишем малко приложение с помощта на Spring Boot - 12Нашият контролер беше извикан при този преход. Не сме предали ниHowви параметри през URL address. В резултат на това атрибутът name приема стойността по подразбиране ("World"), посочена в анотацията. Нека опитаме да предадем параметър през URL address: Част 8. Нека напишем малко приложение с помощта на Spring Boot - 13Всичко работи по преднаmeaning. Сега опитайте да проследите пътя на променливата на името:
  1. Потребителят предаде "name=Amigo" в URL address ->
  2. Контролерът обработи нашето действие, получи променливата name и зададе атрибут на модела, наречен name, equals на получената стойност ->
  3. Тези данни идват за преглед от модела, завършват в pageта greeting.html и се показват на потребителя
Това е за сега!

Днес се запознахме с доста обширната и интересна тема за MVC (Model - View - Controller). Това е краят на поредицата, предназначена да ви запознае с това, което трябва да знаете, преди да започнете корпоративно развитие.

В коментарите ни кажете кои теми ви интересуват — ние ще ги разгледаме!

Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION