Не удалось разрешить аннотацию @RestController весной 2.0.3 - PullRequest
0 голосов
/ 26 июня 2018

Я делаю новый проект Springboot-Maven. Компилятор не может разрешить @RestController, когда я использую ниже pom.xml

      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

Однако, когда я меняю версию на 1.5.13, компилятор может разрешить @RestController

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.13.RELEASE</version>
    </parent>

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

Я хочу использовать последнюю версию весенней загрузки и использовать @RestController.

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

@RestController не от org.springframework.boot:spring-boot-starter-web, а от org.springframework:spring-web. Различные версии spring-boot-starter-web, вероятно, должны иметь некоторую временную зависимость, которая обеспечивает это, но полагаться на это - плохая практика. Если вы используете @RestController в своем коде, вам необходимо явно указать артефакт, который его предоставляет:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>
0 голосов
/ 03 февраля 2019

У меня была похожая проблема, потому что я назвал свой класс RestController . После того как я переименовал его Controller , я мог импортировать пакеты @RestController без проблем.

0 голосов
/ 26 июня 2018

, поскольку я не могу добавить комментарий, я думаю, что конфигурация maven не является вашей проблемой, проверьте ваши классы @Configuration и @SpringBootApplication и их параметры сканирования пути

еще одна проблема, с которой вы можете столкнуться: возможно, одна из ваших зависимостей по-прежнему зависит от springboot 1.5, вам нужно иметь чистый classpath springboot 2.0

Я тоже сталкиваюсь с такими проблемами, так что продолжайте Diggin, вы найдете это; -)

...