Spring Boot– ის დამატებითი ფუნქციები - Spring Application Class


ახლა თქვენ უნდა გემშვიდობოთ Spring Boot ჩარჩოს საფუძვლებს და მის უპირატესობებსა და ძირითად მახასიათებლებს.

ამ სახელმძღვანელოდან მოყოლებული, თქვენ ღრმად ჩახვალთ Spring Boot– ის მოწინავე მახასიათებლებში და როგორ მოერგოთ ისინი თქვენი საჭიროების შესაბამისად.

შემდეგ განყოფილებებში მოცემულია უფრო მეტი დეტალები Spring Boot ჩარჩოს მოწინავე მახასიათებლების შესახებ

განაცხადის ჩატვირთვა

Bootstrapping ეხება პროგრამის ინიციალიზაციას საჭირო რესურსებით.

  • Spring Boot- ში, ჩატვირთვისას მიიღწევა SpringApplication.run () მეთოდი ზარის ძირითადი () მეთოდიდან, როგორც ნაჩვენებია შემდეგ კოდის ფრაგმენტში:
@SpringBootApplication
public class DemoApplication {
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }
}
  • სტანდარტულად, Spring Boot პროგრამაში მხოლოდ INFO- ს ხე – ტყის გაგზავნა გამოჩნდება. თუ ხეების სხვა დონის დაყენება გჭირდებათ, შეგიძლიათ გაეცნოთ ხეების დონის თავში.

დაწყება წარუმატებლობები

Spring Boot გთავაზობთ ავტომატურად დარეგისტრირებულ რაოდენობასუკმარისობის ანალიზატორები”, რომელიც გთავაზობთ დეტალურ შეტყობინებას იმის შესახებ, თუ რა მოხდა შეცდომა განაცხადის დაწყების დროს და ასევე გთავაზობთ შესწორების ზომებს, რომელიც უნდა იქნას მიღებული საკითხის გადასაჭრელად.

მაგალითად, თუ თქვენ ცდილობთ დაიწყოთ თქვენი აპლიკაცია 8080 პორტზე, რომელსაც უკვე იყენებს სხვა პროცესი, თქვენ უნდა დაინახოთ შემდეგი შეტყობინება, რომელიც მომხმარებლისთვის ნაჩვენებია:

***************************
APPLICATION FAILED TO START
***************************
Description:
Embedded servlet container failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

მაშინაც კი, თუ წარუმატებლობის ანალიზატორებს არ შეუძლიათ გაუმკლავდნენ გამონაკლისს, თქვენ კვლავ შეგიძლიათ იპოვოთ შეცდომის ძირითადი მიზეზი, გამართვის ქონება შემდეგნაირად:

java -jar demoApplication.jar --debug

საგაზაფხულო Boot ბანერის მორგება

Spring Boot პროგრამის გაშვების დროს ნაჩვენები ბანერის გარეგნობა შეგიძლიათ დაამატოთ ბანერი. txt შეიტანეთ კლასში. ეს ფაილი შეიცავს ცვლადებს, როგორც ნაჩვენებია შემდეგ ცხრილში:

საგაზაფხულო ბანერის მორგება

გარდა ამისა, თქვენ ასევე შეგიძლიათ დააყენოთ თვისება გაზაფხული. ბანერი. ადგილმდებარეობა banner.txt ფაილის ადგილმდებარეობაში პროგრამა

ცვლადები, რომლებიც იმყოფება banner.txt ფაილში

${application.version}
თქვენი აპლიკაციის ვერსიის ნომერი, როგორც ეს დეკლარაციაშია მითითებული MANIFEST.MF. მაგალითად,Implementation-Version: 1.0 იბეჭდება როგორც 1.0
${application.formatted-version}
თქვენი აპლიკაციის ვერსიის ნომერი, როგორც ეს დეკლარაციაშია მითითებული MANIFEST.MF და ფორმატირებული საჩვენებლად (ფრჩხილებით გარშემორტყმული და პრეფიქსით v) Მაგალითად(v1.0).
${spring-boot.version}
თქვენ იყენებთ Spring Boot ვერსიას. Მაგალითად 2.1.3.RELEASE.
${spring-boot.formatted-version}
თქვენ იყენებთ Spring Boot ვერსიას, რომელიც ფორმატირებულია ჩვენებისთვის (გარშემორტყმული ფრჩხილებით და პრეფიქსით v) Მაგალითად (v2.1.3.RELEASE).

ბრძანების არგუმენტების გადაცემა პროგრამაში

  • ბრძანების ხაზის არგუმენტები გამოიყენება გამდინარე დროის მონაცემების უზრუნველსაყოფად ან ნაგულისხმევი Spring Boot კონფიგურაციების გადასაჭრელად.
  • სტანდარტულად, Spring Boot პროგრამა აკონვერტებს ბრძანების არგუმენტს, როგორც თვისებას და უმატებს მას გარემოს. ბრძანების სტრიქონების არგუმენტები უპირატესობას ანიჭებს თვისების ნებისმიერ სხვა წყაროს.
  • ამ სექციაში ჩვენ ვნახავთ, როგორ ხდება აპლიკაციის არგუმენტების გადაცემა და წვდომა Spring Boot პროგრამაში.

იხილეთ შემდეგი ძირითადი SpringBootApplication კლასი:

package com.example.demo;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication implements ApplicationRunner{
  private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }
  
  @Override
    public void run(ApplicationArguments args) throws Exception {
        logger.info("Command Line Arguments passed: {}", Arrays.toString(args.getSourceArgs()));
        logger.info("Non-Option Arguments: {}", args.getNonOptionArgs());
        logger.info("Option Arguments: {}", args.getOptionNames());
        for (String name : args.getOptionNames()){
            logger.info("argument-" + name + "=" + args.getOptionValues(name));
        }
        boolean containsOption = args.containsOption("name");
        logger.info("Contains Name: " + containsOption);
    }
}

ზემოთ მოცემული კოდიდან ყურადღება მიაქციეთ შემდეგ პუნქტებს:

  • როდესაც არგუმენტებს გადასცემს Spring Boot პროგრამას, ის ქმნის ტიპის ლობიოს არგუმენტები, იტვირთავს მას არგუმენტებით და აყენებს მას საგაზაფხულო კონტექსტში.
  • გაითვალისწინეთ, რომ ზემოთ მოცემულ კოდში ჩვენ გადავალახეთ run () მეთოდი და არგუმენტად გადავიტანეთ ApplicationArguments. ახლა, ამ ლობიოს გამოყენება შეგვიძლია არგუმენტებზე წვდომისთვის.

1. არგუმენტები, რომლებსაც თან ახლავს - როგორც პრეფიქსი არის "ვარიანტი არგუმენტები".
2. უშუალოდ ყოველგვარი პრეფიქსის გარეშე გადაცემული არგუმენტები არის "არასაპარატო არგუმენტები".

  • ასევე, გაითვალისწინეთ, რომ მთავარმა კლასმა უნდა დანერგოს "ApplicationRunner" ინტერფეისი.

ახლა აპლიკაციის გაშვება შეგიძლიათ შემდეგ რომელიმე ვარიანტში:

ვარიანტი 1

ახლა, არგუმენტების გასავლელად და STS / IntelliJ– დან ზემოთ მოცემული პროგრამის გასაშვებად, გადადით აქ:

  • მარჯვენა ღილაკით დააჭირეთ პროექტს -> აწარმოე როგორც -> აწარმოე კონფიგურაციები -> „არგუმენტები“ ჩანართი და გაიარეთ არგუმენტების ნიმუში, როგორც ეს ნაჩვენებია ქვემოთ.
  • დაწკაპეთ გასაშვებად

ვარიანტი 2

გარდა ამისა, თუ თქვენ შეფუთეთ პროგრამა JAR– ით და იყენებთ პროგრამას, გამოიყენეთ იგი ჯავა -jar ბრძანება, შეგიძლიათ არგუმენტები შემდეგნაირად გაიაროთ:

$ java -jar demoApplication.jar ეს არის არა-ვარიანტი-არგუმენტი –Server.port = 9090 – სახელი = tutorialcup.com

კონსოლის გამომავალი

თქვენ უნდა გქონდეთ შემდეგი შედეგის ნახვა (მონიშნულია ქვემოთ), როდესაც განაცხადს აწარმოებთ ზემოთ აღნიშნულ ნებისმიერ ვარიანტში:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.3.RELEASE)
2019-03-23 01:13:17.987  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : Starting DemoApplication on m-c02qg7nkg8wn with PID 39347 
2019-03-23 01:13:19.103  INFO 39347 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9090 (http)
2019-03-23 01:13:19.133  INFO 39347 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-03-23 01:13:19.134  INFO 39347 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.16]
2019-03-23 01:13:19.214  INFO 39347 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-03-23 01:13:19.214  INFO 39347 --- [  restartedMain] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1184 ms
2019-03-23 01:13:19.617  INFO 39347 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 9090 (http) with context path ''
2019-03-23 01:13:19.621  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : Started DemoApplication in 1.904 seconds (JVM running for 2.611)
2019-03-23 01:13:19.622  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : Command Line Arguments passed: [--spring.output.ansi.enabled=always, this-is-a-non-option-arg, --server.port=9090, --name=tutorialcup.com]
2019-03-23 01:13:19.624  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : Non-Option Arguments: [this-is-a-non-option-arg]
2019-03-23 01:13:19.624  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : Option Arguments: [spring.output.ansi.enabled, server.port, name]
2019-03-23 01:13:19.624  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : argument-spring.output.ansi.enabled=[always]
2019-03-23 01:13:19.624  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : argument-server.port=[9090]
2019-03-23 01:13:19.624  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : argument-name=[tutorialcup.com]
2019-03-23 01:13:19.624  INFO 39347 --- [  restartedMain] com.example.demo.DemoApplication         : Contains Name: true

დასკვნა

ამ სახელმძღვანელოში ჩვენ ვისწავლეთ SpringApplication- ის მახასიათებლები და როგორ უნდა მოვაწყოთ SpringApplication. მომდევნო სახელმძღვანელოში ჩვენ განვიხილავთ ხეების სხვადასხვა დონეს და თუ როგორ მოვახდინოთ ხეების დონის მორგება, ჩვენი მოთხოვნის შესაბამისად.