JavaRush /Java блогы /Random-KK /8-бөлім. Spring-boot бағдарламасында шағын қосымшаны жазу...

8-бөлім. Spring-boot бағдарламасында шағын қосымшаны жазу

Топта жарияланған
Бұл материал «Кәсіпорынның дамуына кіріспе» сериясының соңғы бөлігі болып табылады. Алдыңғы мақалалар: 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 1Мысал ретінде Spring-MVC көмегімен MVC іске асырудың қарапайым мысалын қарастырайық. Ол үшін көктемгі жүктеуде шағын Hello World қосымшасын жазайық. Барлығын өзіңіз қайталай алуыңыз үшін мен сізге қадамдық нұсқаулар беремін. Алдымен шағын өтініш жазамыз, содан кейін оны талдаймыз.

1-қадам: IntelliJ IDEA ішінде серіппелі жүктеу қолданбасын жасаңыз

Файл -> Жаңа -> Жобаны пайдалану арқылы жаңа жоба жасаңыз. Ашылған терезеде сол жақ мәзірде Spring Initializr таңдаңыз, Project SDK таңдаңыз және Initializr Service URL опциясын әдепкі ретінде қалдырыңыз. 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 2Келесі түймешігін басыңыз. Келесі терезеде жобаның параметрлерін таңдау керек. Бізде Maven жобасы болады. Түр - Maven жобасы таңдаңыз, Топты және Артефактты толтырып 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 3, Келесі түймешігін басыңыз. Келесі терезеде біз қолданатын Spring Framework компоненттерін таңдауымыз керек. Бізге тек екі қажет:
  • Spring Web - бұл веб-қосымшаларды жасауға мүмкіндік беретін компонент. Бұл компонент Spring MVC қамтиды.
  • Thymeleaf - Шаблон қозғалтқышы деп аталады. Java-дан HTML беттеріне деректерді тасымалдауға мүмкіндік беретін нәрсе
8-бөлім. Spring-boot-та шағын қосымшаны жазу - 48-бөлім. Spring-boot-та шағын қосымшаны жазу - 5Келесі терезеде файлдық жүйедегі жобаның атын және орнын таңдаңыз: 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 6Аяқтау түймесін басыңыз. Жоба құрылды. Бізде келесі жоба құрылымы бар: 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 7Мұнда бізді 2 файл қызықтырады: pom.xml - орналастыру дескрипторы. Біздің жобаға әртүрлі фреймворктардан кітапханаларды жылдам және оңай импорттауға мүмкіндік беретін нәрсе, сондай-ақ біздің қолданбаның құрастыруын конфигурациялайтын нәрсе. Біздің қолданбамыз Maven көмегімен құрастырылған, pom.xml — осы құрастыру жүйесінің конфигурация файлы. Java класы - MvcDemoApplication. Бұл біздің қосымшаның негізгі сыныбы, одан біз көктемгі жүктеу жобамызды бастаймыз. Бастау үшін осы сыныптағы негізгі әдісті іске қосыңыз. Міне, осы сыныптың codeы, сондай-ақ 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.javarush</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-қадам. Веб-беттерді жасау

Біздің өтініміміз өте қарапайым болады. Бізде негізгі бет - index.html болады, оның ішінде сәлемдесу бетіне - greeting.html сілтемесі болады. Сәлемдесу бетінде біз сәлемдесуді көрсетеміз. url параметрлері арқылы greeting.html бетіне сәлемдесу атын жіберу мүмкіндігін іске асырайық. Қолданбамыздың негізгі бетін жасайық - 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>
Енді 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>
Мұнда типтік емес html бетінен тегті көруге болады: Tag <p th:text="'Hello, ' + ${name} + '!'" /> төлсипаты Thymeleaf үлгі қозғалтқышының құралы болып табылады. Оның арқасында тегтің мәні «Сәлеметсіз бе,» мәтіні + айнымалының мәні болады , оны біз Java codeынан орнатамыз. thppname

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 annotationсы бұл класс контроллер екенін көрсетеді. Көктемдегі контроллерлер HTTP сұрауларын нақты мекенжайларға өңдейді. Біздің сыныпта annotationмен белгіленген helloWorldController әдісі бар - @RequestMapping(value = "/greeting"). Бұл annotation бізге бұл әдіс HTTP GET сұрауларын /сәлемдесу мекенжайына өңдейтінін айтады. Басқаша айтқанда, егер біреу /сәлемдесуге барса, бұл әдіс жұмыс істейді. Бұл әдіс Жолды қайтарады. Spring-MVC сәйкес контроллер әдісі көрініс атауын қайтаруы керек. Әрі қарай, Spring HTTP сұрауына жауап ретінде қайтарылатын аттас html файлын іздейді. Көріп отырғаныңыздай, біздің әдіс бұрын жасаған веб-беттің атын қайтарады - сәлемдесу. Біздің әдіс 2 аргумент алады. Оларды қарастырайық: 1-параметр: @RequestParam(аты = «аты», қажет = жалған, defaultValue = «Әлем») Жол атауы. @RequestParam annotationсында Жол атауы параметрі url параметрі екенін айтады. Аннотация жақшалары url мекенжайындағы бұл параметрдің міндетті емес екенін көрсетеді (міндетті = жалған), егер ол жоқ болса, String name параметрінің мәні World (defaultValue = «World») болады, ал егер ол бар болса, онда бұл параметр url-де атау деп аталады (аты = «аты») Мұнда түсініксіз көп нәрсе болуы мүмкін. Мысалдар келтірейік. Төмендегі кесте /сәлемдесу мекенжайына (URL мекенжайындағы параметрлері бар және жоқ) қол жеткізудің әртүрлі опциялары үшін Жол атауы параметрінің мәні қандай болатынын көрсетеді.
Мысал URL мекенжайы Жол атауы параметрінің мәні
/сәлемдесу Әлем
/сәлемдесу?name=Амиго Амиго
/сәлемдесу?name=Зор Зор
2-параметр: Екінші параметр үлгі үлгісі. Бұл параметр үлгі болып табылады. Бұл модель ішкі жағынан әртүрлі атрибуттардан тұрады. Әрбір атрибуттың аты мен мәні бар. Кілт-мән жұптары сияқты нәрсе. Бұл параметрді пайдалана отырып, деректерді Java codeынан html беттеріне тасымалдай аламыз. Немесе MVC терминологиясында деректерді Үлгіден Көрініске тасымалдаңыз. Соңғы жолды талдау қалады. Деректерді Java-дан html-ге немесе Модельден View-ге беру тәсілі. Әдістің денесі келесі жолды қамтиды: model.addAttribute("name", name); Мұнда біз name деп аталатын жаңа атрибут жасаймыз және оған name параметрінің мәнін тағайындаймыз. Есіңізде болсын, жақында біз тегті талқылаған болатынбыз: <p th:text="'Hello, ' + ${name} + '!'" /> Біз p тегінің мәні «Сәлеметсіз бе,» мәтіні + Java codeынан орнататын атау айнымалысының мәні болатынын айттық. Бұл мәнді сызық арқылы орнатамыз model.addAttribute("name", name);

5-қадам. Іске қосу

Іске қосу үшін MvcDemoApplication класында негізгі әдісті іске қосу керек: 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 9Іске қосу журналдарында біздің веб-қосымшаның 8080 портында басталғанын көреміз: 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 10Бұл браузердегі бетке өтуге болатынын білдіреді: http:// localhost:8080 : 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 11Мұнда бізге index.html беті көрсетілді. Сәлемдесу үшін сілтемеге өтейік: 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 12Бұл ауысу кезінде біздің контроллер жұмыс істеді. Біз URL мекенжайы арқылы ешбір параметрді өткізген жоқпыз, сондықтан annotationда айтылғандай, name атрибутының мәні әдепкі World мәнін алды. Енді url арқылы параметрді беруге тырысайық: 8-бөлім. Spring-boot-та шағын қосымшаны жазу - 13Барлығы жоспарланғандай жұмыс істейді. Енді атау айнымалысының жолын қадағалап көріңіз:
  1. Пайдаланушы = Amigo -> url арқылы параметр атауының мәнін берді
  2. Контроллер біздің әрекетімізді өңдеді, атау айнымалысын қабылдады және атаумен және қабылданған мәнмен үлгі төлсипатын орнатты ->
  3. Үлгіден бұл деректер Көрініске, greeting.html бетіне өтіп, пайдаланушыға көрсетілді
Осымен болды!

Бүгін біз сізді MVC (Модель - Көрініс - Контроллер) өте үлкен және қызықты тақырыбымен таныстырдық. Бұл серияның соңы, оның мақсаты кәсіпорынды әзірлеуді бастамас бұрын білуіңіз керек нәрселермен таныстыру.

Түсініктемелерде сізді қызықтыратын тақырыптарды қалдырыңыз - біз жасаймыз!

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION