Управление URL для веб-приложения Java (особенно Spring) - PullRequest
0 голосов
/ 04 июля 2019

Книга Spring in Action 5-е издание поставляется с некоторым загружаемым исходным кодом, который организован по главам. Ссылка для загружаемого программного обеспечения следующая: https://www.manning.com/downloads/1599

Вот файл POM для примера кода главы 1:

<?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
          http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>sia</groupId>
  <artifactId>taco-cloud</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>                <!--1-->

  <name>taco-cloud</name>
  <description>Taco Cloud Example</description>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>                    <!--2-->
    <relativePath/> <!-- lookup parent from repository -->
  </parent>

  <properties>
    <project.build.sourceEncoding>
        UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>
        UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>                                             <!--3-->
      <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-devtools</artifactId>
      <scope>runtime</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
        <scope>test</scope>
    </dependency>

     <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>htmlunit-driver</artifactId>
        <scope>test</scope>
      </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>                                               <!--4-->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

URL для вызова приложения (запущенного на моем локальном сервере) выглядит следующим образом:

http://localhost:8080/

Я хотел бы внести изменения (в POM?), Чтобы я мог указать номер главы с помощью URL. В частности, я хотел бы вызвать приложение со следующим URL:

 http://localhost:8080/Chapter01  

В аннотации @GetMapping в коде контроллера используется корневой путь (т. Е. "/"), Который я хочу сохранить.

Пожалуйста, предложите указатели.

1 Ответ

1 голос
/ 05 июля 2019

Чтобы контроллер имел общий базовый адрес или путь URL, вы можете добавить аннотацию @RequestMapping("/Chapter01") к своему контроллеру.

Ваш контроллер будет выглядеть примерно так:

@RestController
@RequestMapping("/Chapter01")
public class Controller {

    @GetMapping("/")
    // some get method        

}

Теперь вы используете следующий URL для вызова этого метода: http://localhost:8080/Chapter01/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...