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

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
В Spring Boot можно задать таймаут для graceful shutdown через настройку spring.lifecycle.timeout-per-shutdown-phase.

Graceful shutdown помогает избежать резких обрывов HTTP-запросов и преждевременных остановок потоков.

server:
shutdown: graceful

spring:
lifecycle:
timeout-per-shutdown-phase: 20s

# Сервер будет завершаться корректно (graceful).
# Даёт до 20 секунд на завершение запросов и работы бинов.


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Про модификаторы доступа в Java (public / default / protected / private)

private - только для себя
public - откуда угодно
protected - вроде бы для подклассов?

На самом деле тут всегда начинается каша, если не смотреть на вопрос "откуда и кто вызывает" по двум осям: пакет и наследование.

Чтобы нормально понять модификаторы, я подумал: пусть будет статья с моделью "якинику-ресторан".

Что такое модификаторы на самом деле
:

Модификаторы - это не про "силу".
Это правила, откуда можно получить доступ.

В Java доступ всегда определяется двумя вещами:

* тот же пакет?
* есть наследование?

Модель с рестораном якинику:

* YakinikuShop: сам ресторан (родительский класс)
* LocalStaff: персонал этого же ресторана
* Manager: управляющий (дочерний класс)
* BranchStaff: персонал филиала (другой пакет + наследник)
* Customer: обычный клиент

Родительский класс: YakinikuShop.java

package shop;

public class YakinikuShop {

public int counter = 30; // Стойка/места: видно всем
int staffRoom = 10; // Комната персонала: только для своего пакета
protected int kitchen = 20; // Кухня: свой пакет или наследники
private int safeMoney = 100; // Сейф: даже управляющему напрямую нельзя

public void askManagerToOpenSafe(Object person) {
if (!(person instanceof Manager)) {
System.out.println(" Только управляющий может открыть сейф");
return;
}
openSafe();
}

private void openSafe() {
System.out.println("open safe: " + safeMoney);
}
}


Почему askManagerToOpenSafe "особенный"

askManagerToOpenSafe - public.
То есть вызвать его может кто угодно.

Но откроется сейф или нет - решает проверка instanceof внутри.

public != "можно всё"
public = "вход виден и доступен"

Суть public вот такая:

* может вызвать клиент
* может вызвать персонал
* может вызвать кто-то из другого магазина

"Встать у входа и попросить" можно, но:

* если ты не управляющий - тебя сразу разворачивают
* private-сейф напрямую трогать нельзя

Таблица доступа:

Клиент:

public:
default:
protected:
private:

Персонал этого же ресторана (тот же пакет):

public:
default:
protected:
private:

Персонал филиала (другой пакет, но наследник):

public:
default:
protected:
private:

Управляющий (дочерний класс):

public:
default:
protected:
private:

Сам класс YakinikuShop:

public:
default:
protected:
private:

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