Как использовать lombok.Данная аннотация в приложении Spring для загрузки?

Я использовал аннотацию @Data в моем классе POJO, но получатели и сеттеры не генерируются. IDE, который я использую, это sts (Spring Tool Suite)

//User POJO Class
import lombok.Data;

@Data
public class UserVo {

    private String name;
    private String userName;
    private String email;
    private String mobile;
    private String password;
}
<!-- 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.aptitest</groupId>
    <artifactId>wt-online-test-backend</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>wt-online-test-backend</name>
    <description>Online Aptitude Test</description>

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

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

    <dependencies>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>1.9.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</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>
        </dependency>
        <dependency>
            <groupId>org.springframework.restdocs</groupId>
            <artifactId>spring-restdocs-mockmvc</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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


</project>

Ответ 1

Проблема здесь, вероятно, связана с вашей способностью проверять, были ли фактически получены геттеры/сеттеры.

  1. Если ваша IDE сообщает, что getter/setters не сгенерированы - IDE может быть неправильным. Это может не определить, что были получены геттеры/сеттеры; Для вашей IDE - убедитесь, что у вас есть соответствующие плагины для этого. Это, скорее всего, ваша проблема, так как вы упоминаете STS. Попробуйте одну из ссылок, имеющих отношение к вашему делу:

  2. Используйте независимую от IDE сборку Maven, чтобы убедиться, что Lombok генерирует то, что должен.

Ответ 2

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

Ответ 3

Во-первых, вам не нужно добавлять @Setter и @Getter. @Дата включает эти два.
Во-вторых, вам нужно добавить плагин lombok к вашей среде IDE (поиск плагина lombok для STS или Enabling Annotation processor для STS). Когда вы это делаете, вы не видите, как в вашей среде IDE генерируются геттеры и сеттеры. Это поможет вам преодолеть ошибки времени компиляции в вашей среде IDE. все это.

Ответ 5

Средство IDE Spring Tool Suite основано на eclipse.

Из официальной документации Ломбока: https://projectlombok.org/download.html

Eclipse и варианты. Запустите lombok.jar в качестве приложения Java (например, дважды щелкните его, как правило) для установки. Также добавьте lombok.jar в свой проект. Поддерживаемые варианты: Springsource Tool Suite, JBoss Developer Studio

Если это все еще не работает, это обсуждение может помочь вам:

как настроить lombok в eclipse luna

Ответ 6

В моем случае в сгенерированном классе lombok были сгенерированы методы получения/установки для моего класса сущностей. Но я все еще получал нулевые значения, привязанные ко всем полям в моей сущности, кроме поля @Id. Я использую Gradle, а не Maven.

Что решило проблему для меня, так это установить плагин Lombok в IntelliJ CE IDE, а также включить обработку аннотаций для IDE/проекта.

После этого я могу сохранять свою сущность просто отлично!

Ответ 7

Lombok - это процессор аннотаций - он имеет полный доступ к сгенерированному дереву исходников. В то время как процессоры аннотаций обычно генерируют новые исходные файлы, Lombok модифицирует существующие, добавляя новые поля или методы.

Есть много аннотаций, представленных Lombok. (См. Полный список)

Чтобы ответить на вопрос: аннотации Lombok не генерируют код во время разработки. Это происходит только тогда, когда компилятор Java генерирует абстрактное исходное дерево. Поэтому не ожидайте, что код будет волшебным образом изменяться всякий раз, когда вы добавляете аннотацию.

Но вам нужно разрешить их в вашей конкретной IDE, чтобы все зависимости и импорт были добавлены правильно. Ниже приведены способы разрешения аннотаций Lombok в выбранной вами среде IDE. Вы также можете перейти к проекту Maven и разрешить их (репозиторий Project Lombok Maven).

IntelliJ Идея

1) Включить обработку аннотаций

Файл → Настройки → Построение, Выполнение, Развертывание → Компилятор → Процессоры аннотаций → (Установите флажок в соответствии с изображением ниже)

Enable Annotation Processor

2) Установить/обновить плагин Lombok (см. Это)

Файл → Настройки → Плагины → Поиск плагина Lombok → Обновить или установить

Затмение

Следуйте этим шагам в этой ссылке.

Ответ 8

Изучите этот образец проекта с помощью Springboot + Lombok. Этот класс использует @Data: https://github.com/raulvillalbamedina/exampleApiHateoas/blob/master/src/main/java/com/rvillalba/exampleApiHateoas/entity/Example.java

Если ваша IDE имеет ошибки, вам нужен плагин: "Затмение и варианты Запустите lombok.jar в качестве приложения java (например, дважды щелкните его, как правило) для установки. Также добавьте lombok.jar в свой проект. Поддерживаемые варианты: Springsource Tool Suite, JBoss Developer Studio IDEA IntelliJ Плагин, разработанный Майклом Плюшниковым, добавляет поддержку большинства функций.

Ответ 9

Вам нужно добавить аннотации @Setter и @Getter к классу