Эта статья представляет благословение элегантного кодированного Ломбока Спрингбута и разделяет ее с вами следующим образом:
Обзор
Lombok помогает упростить устранение некоторого кода Java, который должен иметь, но кажется раздутым, предоставляя простые синтаксические аннотации. Как правило, упрощение объектов POJO (таких как автоматическое генерирование сеттеров и полученных сельскохозяйственных технологий для нас и т. Д.) При поддержке Ломбока, разработчики могут избежать многих повторяющихся и раздутых операций, значительно улучшая отношение сигнал / шум кода Java, поэтому мы должны попробовать и применить его!
Конфигурация на идею IntelliJ
Метод 1: Настройка непосредственно в интерфейсе IDEA
Сначала введите интерфейс плагинов:
Затем найдите и установите плагин Lombok:
Наконец, не забудьте включить вариант включения процессоров аннотации:
После того, как вышеупомянутая установка завершена, идея необходимо перезапустить, чтобы вступить в силу!
Метод 2: вручную загрузить установку плагина Lombok
Иногда из -за сетевых причин приведенный выше метод не может установить, поэтому вы можете загрузить только вручную и установить его.
Загрузите плагин Lombok:
https://github.com/mplushnikov/lombok-intellij-plugin/releases
Плагины -> Установить плагин с диска ... выберите загруженную установку пакета ZIP
Просто перезапустить идею
После завершения настройки в IDE вам необходимо добавить следующую зависимость Ломбока в pom.xml, чтобы использовать ее
<Depective> <groupId> org.projectlombok </GroupId> <artifactid> lombok </artifactid> <sersive> 1.16.16 </version> </depervice>
Ломбок основные заметки
@Getter and @Setter / автоматически предоставляют методы установки и получения свойств.@ToString / Функция этой аннотации состоит в том, чтобы автоматически генерировать метод toString () для класса@EqualsAndHashCode / автоматически генерировать хешкод и равен реализациям для поля объектов@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor / Как следует из названия, автоматически генерирует конструкторы с соответствующими параметрами для класса@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog / автоматически добавить соответствующую поддержку журнала в класс@Data / автоматически добавлять @ToString, @EqualsAndhashcode, @getter, добавить @setter и @requiredargscstructor к нефинальным полям, что по существу эквивалентно всестороннему эффекту нескольких аннотаций.@NonNull / автоматически помогает нам избежать нулевых указателей. Аннотации, действующие на параметры метода, используются для автоматического генерации проверки нулевых параметров@Cleanup / автоматически вызовите метод Close () для нас. Он действует на локальные переменные. Когда охват заканчивается, метод закрытия будет автоматически вызван для выпуска ресурсов. Вот практическая битва с кодом с аннотациями @Data и @Log , которые чаще всего используются в Ломбоке!
@Data Аннотация Использование
Объяснение официального сайта об аннотации @Data выглядит следующим образом:
Теперь все вместе: ярлык для @ToString, @EqualsAndhashcode, @getter на всех полях, @Setter на всех нефинальных полях и @RequiredArgSconstructor!
Это не сложно понять, его можно рассматривать как интеграцию множества аннотаций Ломбока, так что это очень удобно в использовании!
Во -первых, создайте объект Pojo userlombok. Общий метод написания следующего:
открытый класс userlombok {private final String name; частный int возраст; частный двойной счет; частная строка [] теги; public userlombok (string name) {this.name = name; } public String getName () {return this.name; } void setage (int age) {this.age = age; } public int getage () {return this.age; } public void setScore (двойная оценка) {this.Score = scord; } public double getScore () {return this.score; } public String [] getTags () {return this.tags; } public void Setatags (String [] Tags) {this.tags = Tags; } @Override public String toString () {return "dataExample (" + this.getName () + "," + this.getage () + "," + this.getScore () + "," + arrays.deeptoString (this.getTags ()) + ")"; } Защищенный логический Canequal (Object Other) {возвращает другой экземпляр DataExample; } @Override public boolean equals (Object o) {if (o == this) вернуть true; if (! (o exantef DataExample)) вернуть false; DataExample dise = (DataExample) O; if (! o.canequal ((объект) это)) вернуть false; if (this.getName () == null? Другое.getName ()! = null :! this.getName (). equals (ore.getName ())) вернуть false; if (this.getage ()! = Другое.getage ()) вернуть false; if (double.compare (this.getScore (), ore.getScore ()))! = 0) вернуть false; if (! arrays.deepequals (this.getTags (), другие.getTags ())) вернуть false; вернуть истину; } @Override public int hashcode () {final int prime = 59; int result = 1; final long temp1 = double.doubletolongbits (this.getScore ()); result = (result*prime) + (this.getName () == null? 43: this.getName (). hashcode ()); result = (result*prime) + this.getage (); result = (result*prime) + (int) (temp1 ^ (temp1 >>> 32)); result = (result*prime) + arrays.deephashcode (this.getTags ()); результат возврата; }}После благословения Ломбока метод написания может быть упрощен:
@Datapublic class userlombok {private final String name; частный int возраст; частный двойной счет; Private String [] теги;}При использовании в идее аннотации Ломбока будут автоматически завершены, как показано на следующем рисунке:
Давайте напишем тестовый код POJO
public static void main (string [] args) {userlombok userlombok = new userlombok ("hansonwang99"); userlombok.setage (18); String [] array = new String [] {"Apple", "Juice"}; userlombok.settags (массив); userlombok.setscore (99.0); System.out.println (userlombok); }На приведенном ниже рисунке мы видим, что идея все еще может автоматически завершить код, автоматически сгенерированный Lombok для нас:
Результаты Печать
Поскольку Ломбок автоматически генерирует метод ToString для нас, результат печати объекта заключается в следующем:
Userlombok (name = hansonwang99, возраст = 18, оценка = 99,0, теги = [яблоко, сок])
@Log Практика аннотации
В моей статье Framework Framework Framework Framework Practice мы используем log4j2 в качестве объекта журнала, который написан следующим образом:
@Restcontroller@requestmapping ("/testlogging") public class loggingtestcontroller {private final logger logger = logmanager.getlogger (this.getClass ()); @Getmapping ("/hello") public String hello () {for (int i = 0; i <10_0000; i ++) {logger.info ("Info Recaute Index Method"); logger.warn ("Warn выполнить метод индекса"); logger.Error ("Метод индекса Execute Execute"); } вернуть "мое первое приложение Springboot"; }}Если вы используете Lombok вместо этого, метод написания становится более кратким. Нам нужно только представить соответствующую аннотацию @log, чтобы завершить генерацию объекта журнала:
@Restcontroller@requestmapping ("/testloggingwithlombok")@log4j2public class loggingtestcontrollerlomkok {@getmapping ("/hello") public String hello () {для (int i = 0; i <10_0000; i ++) {log.info ("info Execute index method"); log.warn ("Warn Execute Index Method"); log.Error ("Метод индекса erry eructe execute"); } вернуть "мое первое приложение Springboot"; }}Как насчет этого, это все так элегантно!
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.