JavaRush /Блоги Java /Random-TG /Баҳор даҳшатнок нест, хулоса: Ломбок
Павел
Сатҳи

Баҳор даҳшатнок нест, хулоса: Ломбок

Дар гурӯҳ нашр шудааст
МАЗМУРИЯТИ ДАВРАИ МАҚОЛАҲО Каме аз Википедия: Ломбок (Ломбок аз ҳиндӣ – “қаламфури чor”) ҷазираест дар Архипелаги Малайя, дар гурӯҳи Ҷазираҳои Хурд Сунда, қисми Индонезия. Ломбок номест, ки ба китобхонаи маъмул барои забони барномасозии Java дода шудааст. Интихоби ном ба он вобаста аст, ки ҷазираи Ломбок аз ҷазираи Ява он қадар дур нест ва инчунин, зоҳиран, бо маънои номи худ "қаламфури чor", зеро китобхона барои "маъно" -и муфид пешниҳод мекунад. забон. Шумо инро беҳтар гуфта наметавонед ва калимаҳо чӣ фоида доранд, биёед онро дар амал бубинем: Васлкунакро насб кунед. Ба блоки <dependencies> файли pom вобастагӣ илова кунед:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
Инак мо меравем: Лоиҳаро аз мақолаи қаблӣ кушоед , синфи FruitEntity -ро кушоед .
package ru.java.rush.entities;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

@Entity
@Table(name = "fruit_table")
public class FruitEntity {

    @Id
    @Column(name = "id_fruit")
    @GenericGenerator(name = "generator", strategy = "increment")
    @GeneratedValue(generator = "generator")
    private Integer id;

    @Column(name = "fruit_name")
    private String fruitName;

    @Column(name = "provider_code")
    private Integer providerCode;

//чтобы с классом можно было совершать манипуляции создается
//пустой конструктор, геттеры, сеттеры, конструктор и переопределяется метод toString()

public FruitEntity(){

}


public Integer getId() {
    return id;
}

public FruitEntity setId(Integer id) {
    this.id = id;
    return this;
}

public String getFruitName() {
    return fruitName;
}

public FruitEntity setFruitName(String fruitName) {
    this.fruitName = fruitName;
    return this;
}

public Integer getProviderCode() {
    return providerCode;
}

public FruitEntity setProviderCode(Integer providerCode) {
    this.providerCode = providerCode;
    return this;
}

@Override
public String toString() {
    return "FruitEntity{" +
            "id=" + id +
            ", fruitName='" + fruitName + '\'' +
            ", providerCode=" + providerCode +
            '}';
}
Каме дароз, ҳамин тавр не? Биёед шарҳи @Data -ро аз Lombok ба синф илова кунем ва бубинем, ки он codeро чӣ гуна кӯтоҳ мекунад.
package ru.java.rush.entities;

import lombok.Data;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

@Data//annotation сгенирует при компиляции необходимый code
@Entity
@Table(name = "fruit_table")
public class FruitEntity {

    @Id
    @Column(name = "id_fruit")
    @GenericGenerator(name = "generator", strategy = "increment")
    @GeneratedValue(generator = "generator")
    private Integer id;

    @Column(name = "fruit_name")
    private String fruitName;

    @Column(name = "provider_code")
    private Integer providerCode;

//и все! Весь остальной code будет сгенирован Ломбоком
Лоиҳаро иҷро кунед, санҷед, ки ҳама чиз кор мекунад. Акнун биёед бубинем, ки чӣ тавр шумо метавонед бо истифода аз Lombok вобастагӣ ворид кунед. Биёед синфи FruitService -ро ҳамчун намуна кушоем , @RequiredArgsConstructor -ро ба синф замима кунем ва конструкторро аз синф хориҷ кунем; дигар ба мо лозим нест.
package ru.java.rush.services;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import ru.java.rush.entities.FruitEntity;
import ru.java.rush.repositories.FruitRepository;

import java.util.List;


@Service
@RequiredArgsConstructor//annotation от Ломбок
public class FruitService {

    private final FruitRepository fruitRepository;

//здесь когда то был конструктор

    public Optional<FruitEntity> getById(Integer id) {
        return fruitRepository.findById(id);
    }

    public void delById(Integer id) {
        fruitRepository.deleteById(id);
    }

    public Boolean exist(Example<? extends FruitEntity> example) {
        return fruitRepository.exists(example);
    }

    public void save(FruitEntity fruitEntity) {
        fruitRepository.save(fruitEntity);
    }

    public List<FruitEntity> getAll() {
        return fruitRepository.findAll();
    }

    public void saveAll(List<FruitEntity> fruits) {
        fruitRepository.saveAll(fruits);
    }
Ҳоло ҳамон усулро барои нест кардани codeи нолозим дар синфи InitiateUtils истифода баред. Тафтиш кунед, ки ҳама чиз кор мекунад. Ҳангоми пешрафти ин лоиҳа, мо боз якчанд шарҳҳои нави Ломбокро истифода мебарем. UPD: Шарҳи хуб аз Денис Рябчиков "Барои субъект беҳтар аст, ки @Data -ро истифода набаред, балки онро бо @Setter ва @Getter иваз кунед, зеро @Data инчунин toString() ва hashCode()-ро бекор мекунад ва мушкилот метавонад бо рамзи хэш, агар субъект коллексияҳо ва муносибатҳо бо дигар субъектҳо дошта бошад." Аслан, ин ҳама аст, дар ин ҷо мақола дар бораи Lombok аст , ба тавсифи эзоҳҳо нигаред: @Data, @Value, @RequiredArgsConstructor ва @Builder. Дар ин мақола, дар бораи @ Accessors хонед , мақола бо забони англисӣ аст, аммо тарҷумони саҳифа метавонад онро хуб идора кунад, шумо метавонед маънои онро фаҳмед. Дар мақолаи навбатӣ мо пур кардани базаро идома медиҳем.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION