Настройка службы отдыха с использованием gradle - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь использовать gradle впервые, но у меня возникают трудности при создании простого каркаса проекта, из которого я могу работать.

Project Structure

Вотмой контент build.gradle

    buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

bootJar {
    baseName = 'backend'
    version '1.0-SNAPSHOT'
}
war{
    baseName = 'api'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

Все прекрасно работает и работает нормально, используя следующие команды

gradle clean build

и

gradle bootRun

Однако я не вижулюбой контекстный путь, который я могу использовать

2018-05-27 20:32:27.107  INFO 8049 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-05-27 20:32:27.108  INFO 8049 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-05-27 20:32:27.129  INFO 8049 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-27 20:32:27.129  INFO 8049 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-27 20:32:27.231  INFO 8049 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-05-27 20:32:27.271  INFO 8049 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-05-27 20:32:27.275  INFO 8049 --- [           main] com.initiator.Application                : Started Application in 1.976 seconds (JVM running for 2.342)
2018-05-27 20:32:41.119  INFO 8049 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-05-27 20:32:41.119  INFO 8049 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2018-05-27 20:32:41.133  INFO 8049 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 14 ms

Я попробовал следующие URL

http://localhost:8080/
http://localhost:8080/api
http://localhost:8080/api/greeting

Ни один из них не сработал, и я получаю

    Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Любая идея, что я 'я здесь не так делаю?

1 Ответ

0 голосов
/ 27 мая 2018

Spring Boot по умолчанию сканирует пакеты вашего класса Application и его подпакетов на наличие аннотаций.В обзоре структуры кода кажется, что ваше приложение находится в com.initiator, а ваши сущности и контроллеры - в com.controller или com.entity.Объекты или контроллеры в этих обоих пакетах не будут сканироваться с поведением по умолчанию, когда вы просто аннотируете свой основной класс с помощью @SpringBootApplication.

У вас есть 2 возможности:

  1. Сделать вашу сущностьи подпакеты пакетов контроллера вашего класса Application.
  2. Укажите свойство scanBasePackages, чтобы включить пакеты контроллера и сущности, которые не являются подпакетами вашего класса Application, например, @SpringBootApplication(scanBasePackages = { "com.entity", "com.controller" }).
* 1016.* Я бы посоветовал придерживаться первого варианта и придерживаться поведения по умолчанию (меньше работы для вас, ясно для других, где искать ваши аннотированные классы).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...