Java Portal | Программирование
11.9K subscribers
1.63K photos
119 videos
45 files
1.69K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Spring Cloud: централизуйте конфигурацию с помощью Spring Cloud Config вместо того, чтобы копировать application.properties в каждый сервис.

Используйте Spring Cloud Config для централизованного управления конфигурацией, а не копируйте application.properties повсюду.

// — 1) Config Server: одно место, которое обслуживает конфигурацию всех сервисов —
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApp {
public static void main(String[] args) {
new SpringApplicationBuilder(ConfigServerApp.class).run(args);
}
}

// — 2) application.yml сервера (раздаёт файлы из classpath) —
// spring.profiles.active: native # локальные файлы, Git не нужен
// spring.cloud.config.server.native.search-locations: classpath:/config
// server.port: 8888

// — 3) /config/client-service.yml (конфигурация для "client-service") —
// myproperty: value

// — 4) Клиент: загружает конфигурацию с сервера при запуске —
// spring.application.name: client-service
// spring.config.import: optional:configserver:http://localhost:8888

@Component
public class GreetingClient {
@Value("${myproperty}") // значение получено с Config Server
private String myProperty;
}


#SpringBoot #JavaDev

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Java CompletableFuture: цепочка асинхронных шагов без блокировки потока при каждом I/O вызове.

Цепочка: supplyAsync, thenApply, thenCompose, thenAccept (получить пользователя, затем заказы)
Обрабатывайте сбои через exceptionality, не давайте асинхронным ошибкам бесшумно исчезать
Запускайте независимые вызовы параллельно, объединяйте через thenCombine когда оба завершатся

#JavaDev

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring Boot: Вы можете реализовать оптимистическую блокировку с помощью аннотации @Version.

✅ Идеально подходит, когда:
операции чтения выполняются часто;
операции записи происходят сравнительно редко;
конфликты возникают редко.

❌ Не подходит, когда:
конфликты происходят часто;
требуется строгая последовательная обработка (strict serialization).

#SpringBoot #JavaDev

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
💡 Java: sealed types позволяют закрыть граф наследования с помощью permits.

Это даёт полный контроль над тем, какие классы или интерфейсы могут наследоваться от базового типа.

✅ Наследоваться от sealed-класса или интерфейса могут только типы, перечисленные в permits.
✅ Каждый разрешённый подтип должен быть объявлен как final, sealed или non-sealed.

При этом non-sealed — это своего рода «точка выхода»: начиная с такого класса, ограничения снимаются, и наследование снова становится открытым для любых потомков.

#JavaDev

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Java: Используйте Deque вместо Stack для реализации стека (LIFO — last in, first out, «последним пришёл — первым вышел»).

✅ Stack — это устаревший класс. Он наследуется от Vector и синхронизирует каждую операцию.
✅ Deque поддерживает те же методы: push, pop и peek.
✅ ArrayDeque работает быстрее, чем Stack.

#JavaDev

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Используйте Files.isSameFile(path1, path2), чтобы проверить, указывают ли два пути на один и тот же файл. Метод также учитывает симлинки.

✅ Он проверяет, ссылаются ли два объекта Path на один и тот же реальный файл в файловой системе.

#Java #JavaDev

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
💡 Java — не стоит считать, что десятичным разделителем всегда будет точка.

✅ Шаблоны вроде #,###.## всё равно используют символы, зависящие от локали.

✅ Нужные разделители можно задать через DecimalFormatSymbols(locale).

✅ В Италии число будет выглядеть как 1.234,56, а в США — 1,234.56.

#Java #JavaDev

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1