Java Portal | Программирование
12.9K subscribers
1.21K photos
100 videos
37 files
1.14K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Spring Boot: на этапе разработки используй spring.main.lazy-initialization=true, чтобы ускорить старт приложения.

По умолчанию Spring Boot жадно инициализирует все бины на старте. В дев-окружении это значит:

1. Дольше стартует, особенно в больших проектах
2. Приходится ждать загрузки бинов, которые тебе прямо сейчас не нужны

Чтобы этого избежать, в application.properties поставь:

spring.main.lazy-initialization=true


Но в проде важно оставить дефолтное поведение, потому что:

1. Ошибки старта ловятся раньше
2. Все компоненты сразу готовы принимать запросы

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
This media is not supported in your browser
VIEW IN TELEGRAM
Сommand completion (..) расширяет обычный code completion. Помимо автодополнения API и postfix completion, автодополнение кода теперь включает и команды. Чтобы отфильтровать список только до команд, используйте .. Список поддерживает поиск, чтобы быстрее находить нужное.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Java tip : старайся не шарить данные между потоками.

Используй immutable-объекты
Или пусть потоки общаются сообщениями, не лезя напрямую в общий state и не мутируя его

// With immutable objects:

record Book(String title, int price) {} //Immutable

public class BookJob implements Runnable {
private final Book book;
....//constructor

@Override
public void run() {
System.out.println(book.title() + " " + book.price());
}
}

// Exchanging messages:
...
new Thread(() -> {
try {
queue.put("mess1");
} catch (InterruptedException e) {}
}).start();
...
new Thread(() -> {
try {
String mess = queue.take();
} catch (InterruptedException e) {}
}).start();


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2