Java | Фишки и трюки
Відкрити в Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg Менеджер по рекламе: @shmyzna
Показати більше6 954
Підписники
-124 години
-117 днів
+1330 день
Архів дописів
6 954
🔒 Spring Security: Обеспечение безопасности веб-приложений
В современном мире веб-разработки безопасность приложений стоит на первом плане, и именно здесь на сцену выходит Spring Security. Это мощный механизм аутентификации и авторизации, который не только защищает ваше приложение, но и делает его более гибким и устойчивым к угрозам. Давайте разберемся, что именно он предлагает и почему стоит его использовать!
🌟 Что такое Spring Security?
Spring Security — это фреймворк, интегрированный в экосистему Spring, который обеспечивает защиту ваших приложений на всех уровнях. Это не просто защита от несанкционированного доступа; это полноценное решение, включающее аутентификацию, авторизацию, защиту от CSRF-атак и многое другое.
🔑 Ключевые особенности:
1. Аутентификация и авторизация: Легко настраивайте различные механизмы аутентификации (Basic Auth, JWT, OAuth2) и определяйте права доступа для разных ролей пользователя!
2. Защита от CSRF и XSS атак: Spring Security автоматически включает защиту от этих распространенных уязвимостей, позволяя вам сосредоточиться на разработке.
3. Интеграция с различными API: Работает с OAuth2 и OpenID Connect, что позволяет интегрироваться с внешними провайдерами аутентификации, такими как Google или Facebook.
4. Настраиваемая конфигурация: Вы имеете полный контроль над механизмами аутентификации и авторизации, создавая настраиваемые правила доступа.
🛠 Как начать?
- Добавьте Spring Security в ваш проект через Maven или Gradle.
- Настройте механизм аутентификации, указав его в конфигурационных файлах.
- Определите правила доступа для различных URL в вашем приложении.
#Java #SpringSecurity #Security
6 954
Закрытый клуб для айтишников
FAANG School, чьи выпускники работают в Яндексе, СБЕРЕ и других гигантах, запустили бесплатное сообщество для всех, кто изучает Java.
Общайся в ламповом чате с такими же людьми «в теме», получай фидбек у опытных разрабов и черпай практические рекомендации от экспертов школы.
В чате уже больше 10 000 человек, а новенькие, которые подключатся сейчас, получат доступ к большой библиотеке Java Junior с полезными материалами:
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
Вступай сейчас. Открыли доступ всего на 24 часа!
6 954
🔧 Maven vs Gradle: Как выбрать систему сборки для вашего проекта?
В мире Java-разработки выбор системы сборки может стать настоящим камнем преткновения. Maven и Gradle — две самые популярные системы, каждая из которых имеет свои сильные и слабые стороны. Давайте рассмотрим их подробнее!
☕ Maven: Стандарт и стабильность
Maven — это зрелая система сборки, основанная на концепции "конвенций над конфигурацией". Она использует XML для описания проекта и его зависимостей.
Плюсы:
- Простота: Понятный и распространенный подход к конфигурации.
- Сообщество: Огромная база плагинов и поддержка сообщества.
- Лучшие практики: Сразу настраивает структуру проекта, следуя лучшим практикам.
Минусы:
- XML-формат: Может стать громоздким и трудным для чтения.
- Медленнее: Процесс сборки может занимать больше времени при больших проектах.
Пример pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
</dependencies>
</project>
⚡ Gradle: Гибкость и скорость
Gradle — современная система сборки, которая позволяет использовать Groovy или Kotlin DSL для определения конфигураций. Она обеспечивает большую гибкость и возможность настройки.
Плюсы:
- Производительность: Инкрементальная сборка и кеширование значительно ускоряют процесс.
- Гибкость: Легкость в настройке и использование скриптового языка для кастомизации.
- Модульность: Удобно работать с многоуровневыми проектами.
Минусы:
- Крутая кривая обучения: Меньше "из коробки", чем Maven; требуется больше усилий для освоения.
- Младше: Меньшая база плагинов по сравнению с Maven (хотя ситуация улучшается).
Пример build.gradle:
plugins {
id 'java'
}
group 'com.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework:spring-context:5.3.8'
}
🤔 Как выбрать?
1️⃣ Масштаб проекта: Для небольших и средних проектов может быть достаточно Maven. Для крупных и сложных проектов Gradle предложит больше возможностей.
2️⃣ Командные предпочтения: Если ваша команда знакома с одной из систем, лучше следовать этому пути.
3️⃣ Будущее проекта: Gradle, как современная система, может предложить более высокую производительность и гибкость для долгосрочных проектов.
🔥 Итог: Оба инструмента могут быть мощными союзниками. Выбор зависит от ваших потребностей и предпочтений команды. Удачи в разработке! 🚀
#Java #Maven #Gradle #BuildSystems6 954
🔞 Java как секс!
Если зубрить ее только по книжкам, то кроме теории и деградации, ты ничему не научишься
В канале Java, полегче 🥵! ты найдешь лучшие практики написания кода. Действующий тимлид европейского финтеха, самобытно и с долей юмора, делится секретами 🤫:
➖ Гайд по Kafka(причем тут порноактриса Piper Perri)
➖ Roadmap java разработчика на 2025
➖ Самый кринжовый подарок, сделанный девушке, с помощью программирования
➖ Как java крадет твои деньги
➖ Топ 8 ошибок при составлении резюме
➖ Самые сложные алгоритмы на моей практике. Не трать на них время
➖ Chatgpt telegram bot с нуля на java
➖ Миллиард тенге. Самая сложная задача
И это только цветочки. Рекомендую!
В этом канале даже джуны становятся сеньорами 😏
🔈 Подписывайся, это самый простой способ прокачать свои хард-скиллы: @javezka
6 954
Java-приложение в Docker
В современном мире разработки программного обеспечения Docker становится важным инструментом, помогающим разрабатывать, тестировать и развертывать приложения в изолированной среде. Использование Docker с Java-приложениями позволяет значительно упростить процесс развертывания, гарантируя, что ваше приложение будет работать одинаково на всех средах.
Docker — это платформа для создания, развертывания и управления контейнерами. Контейнеры изолируют приложения и все их зависимости, что делает возможным запуск кода в любом окружении без конфликта с другими приложениями.
Шаг 1: Установка Docker
Перед тем как начать, убедитесь, что Docker установлен на вашем компьютере. Вы можете следовать [официальной документации](https://docs.docker.com/get-docker/) для установки на вашу операционную систему.
Шаг 2: Создание Java-приложения
Для примера создадим простое приложение. Предположим, у вас есть простая программа, которая выводит "Hello, World!".
Создайте файл
HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Скомпилируйте её с помощью:
javac HelloWorld.java
Шаг 3: Создание Dockerfile
Dockerfile — это текстовый файл, позволяющий автоматически собирать образ Docker. Создайте файл с именем Dockerfile в каталоге вашего проекта:
# Используем официальный образ OpenJDK
FROM openjdk:17-jdk-slim
# Устанавливаем рабочий каталог
WORKDIR /app
# Копируем скомпилированный класс в контейнер
COPY HelloWorld.class ./
# Определяем команду запуска
CMD ["java", "HelloWorld"]
Шаг 4: Сборка Docker-образа
Теперь создайте Docker-образ, используя следующую команду в каталоге вашего проекта:
docker build -t helloworld .
Эта команда соберет образ и назовет его helloworld.
Шаг 5: Запуск контейнера
Чтобы запустить контейнер, выполните команду:
docker run --rm helloworld
Вы должны увидеть вывод:
Hello, World!Флаг
--rm автоматически удаляет контейнер после его остановки.
#java #docker6 954
Уже завтра собеседование на Middle Java с разработчиком из МТС
20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
1. Мария Ядерцова ведущий Java-разработчик в МТС Диджитал и ex. Сбербанк-Технологии будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Мария будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Марии
Что узнаешь на прямом эфире от ШОРТКАТ:
• Чего ждут от кандидатов на Middle позиции в Java-разработке
• Какие вопросы задают на интервью и зачем
• Как подготовиться к собесу, чтобы получить оффер
Это бесплатно? Бесплатно
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzquWqn86
6 954
⌨️ Что такое CI/CD?
Непрерывная интеграция (Continuous Integration, CI) - процесс, при котором разработчики регулярно интегрируют изменения в код, что позволяет автоматически проверять, компилировать и тестировать его.
Непрерывная доставка (Continuous Delivery, CD) - автоматизация процесса развертывания, которая позволяет разработчикам выпускать новое программное обеспечение в продакшн быстро и надежно.
Инструменты для CI/CD
Для Java-проектов существует множество инструментов для настройки CI/CD. Вот несколько популярных:
✔️ Jenkins: Один из самых популярных инструментов для автоматизации сборки и развертывания.
✔️ GitLab CI/CD: Встроенный CI/CD инструмент в GitLab, удобный для использования.
✔️ Travis CI: Простой в использовании CI-сервис, интегрируемый с GitHub.
✔️ CircleCI: Облачный CI/CD сервис, который позволяет легко автоматизировать тестирование и развертывание.
#java #ci #cd
6 954
⚫️ BLACK FRIDAY: Стань Java-разработчиком со скидкой 65%!
2 дня безумных скидок на главный курс года! 🔥
Ваш путь в мир IT с Академией «Синергия»:
✅ Зарплата от 90 000 ₽ после курса
✅ 15 проектов для портфолио
✅ Диплом о профессиональной переподготовке
✅ Оплачиваемая стажировка у партнёров
Чему вы научитесь:
⚡️ Разрабатывать веб- и мобильные приложения
⚡️ Работать с базами данных и системой контроля версий Git
⚡️ Применять принципы объектно-ориентированного программирования
🎁 Ваши гарантии:
👨🏫 Обучение у практиков из ведущих IT-компаний
💼 Трудоустройство или возврат денег
🤝 Поддержка в развитии soft skills
⚡️ Скидка 65% — только 2 дня!
Начните путь в IT прямо сейчас: https://epic.st/_H33pD
#Java_программирование #blackfriday #IT_образование
Реклама. Университет «Синергия» ИНН 7729152149 erid:2VtzqxDtMbc
6 954
⌨️ Паттерн проектирования: Singleton
Singleton — это паттерн проектирования, который обеспечивает создание единственного экземпляра класса и предоставляет глобальную точку доступа к этому экземпляру. Он часто используется в ситуациях, где нужен строгий контроль над созданием объекта, например, в менеджерах ресурсов или конфигурациях приложения.
Реализации паттерна Singleton:
public class Singleton {
private static volatile Singleton instance;
private Singleton() {
// Приватный конструктор
}
public static Singleton getInstance() {
if (instance == null) { // Проверка на null для улучшения производительности
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
Использование:
public class Main {
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
}
}
#java #Singleton6 954
⌨️ Создание веб-скрапера с помощью Jsoup
Теперь давайте рассмотрим, как создать простой веб-скрапер, используя библиотеку Jsoup. Это мощный инструмент для работы с HTML, который позволяет удобно извлекать нужные данные.
Чтобы начать, добавьте зависимость Jsoup в ваш проект. Если вы используете Maven, добавьте следующий фрагмент в ваш pom.xml:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version> <!-- Убедитесь, что используете последнюю версию -->
</dependency>
Мы создадим простой веб-скрапер, который будет извлекать заголовки с сайта новостей.
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
public class NewsScraper {
public static void main(String[] args) {
String url = "https://example-news-site.com"; // Замените на реальный URL
try {
// Загружаем документ
Document doc = Jsoup.connect(url).get();
// Извлекаем элементы (например, заголовки новостей)
Elements newsHeadlines = doc.select(".headline"); // CSS-селектор для заголовков
// Обрабатываем и выводим заголовки
for (Element headline : newsHeadlines) {
System.out.println(headline.text()); // Выводим текст заголовка
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Что происходит в коде?
1️⃣ Подключение к веб-странице: Метод Jsoup.connect(url).get() позволяет загрузить HTML-код страницы.
2️⃣ Извлечение данных: Метод select() позволяет отобрать элементы, соответствующие заданному CSS-селектору (в нашем случае заголовкам новостей с классом .headline).
3️⃣ Вывод результатов: Перебирая элементы, выводим текст заголовков в консоль.
#java #Jsoup6 954
Получите грант на обучение в Центральном университете
Прояви себя, получи грант до 2,8 млн на обучение ИТ и бизнесу в вузе.
Для школьников 10-х и 11-х классов, СПО.
Подать заявку
#реклама
apply.centraluniversity.ru
О рекламодателе
6 954
ВЕБ-СКРАПИНГ
Веб-скрапинг — это процесс автоматизированного извлечения данных с веб-сайтов. Этот подход позволяет собирать информацию с различных источников, включая новости, отзывы, цены и другие публичные данные. Такого рода практики помогают исследователям, аналитикам и разработчикам анализировать большие объемы информации и использовать ее для разных целей.
Зачем нужен веб-скрапинг?
✔️ Сбор данных: Автоматизированный процесс помогает избежать рутинной работы и значительно экономит время.
✔️ Анализ конкурентов: С помощью скрапа можно отслеживать изменения на сайте конкурентов, выяснять стратегии ценообразования и проводить анализ тенденций.
✔️ Полезные приложения: Создание приложений для мониторинга цен, агрегаторов новостей и других сервисов, использующих живую информацию.
И, главное, помните про соблюдение правил: перед скрапингом сайта обязательно ознакомьтесь с его robots.txt — файлом, который указывает, какие страницы можно скрапить, а какие — нет.
6 954
+9
Помощь в трудоустройстве в IT-сфере!
В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно!
Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита.
Для этого нужно:
- Перейти по ссылке
- Заполнить анкету и ответить на вопросы (занимает менее 3 минут)
- На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать
Перейти на сайт
#реклама 16+
urban-university.ru
О рекламодателе
6 954
⌨️ Switch Expressions
В Java 12 появился новый синтаксис для
switch, который позволяет возвращать значение используя стрелки ->, что делает код более компактным и удобным. Теперь switch может использоваться как выражение, а не только как оператор, что упрощает его применение в логике.
Ранее switch использовался как оператор, и код мог выглядеть громоздко:
String day = "MONDAY";
int numLetters;
switch (day) {
case "MONDAY":
case "FRIDAY":
case "SUNDAY":
numLetters = 6;
break;
case "TUESDAY":
numLetters = 7;
break;
default:
numLetters = 8;
}
System.out.println(numLetters); // Вывод: 6
Со Switch Expressions можно переписать этот код более лаконично:
String day = "MONDAY";
int numLetters = switch (day) {
case "MONDAY", "FRIDAY", "SUNDAY" -> 6;
case "TUESDAY" -> 7;
default -> 8;
};
System.out.println(numLetters); // Вывод: 6
Теперь switch может вернуть значение, и нет необходимости в break.
#java #switch6 954
Чит код для новичков в IT
Изучите фреймворк Hibernate. В 98% случаев данные веб приложений хранятся в SQL базах, а с Hibernate работа с ними станет в десятки раз проще.
Вы сможете создавать приложения, которые могут подключаться к базам данных и выполнять SQL запросы прямо из Java кода.
FAANG School сделали эфир, в котором расскажут все, чтобы раз и навсегда разобраться с этим фреймворком:
– зачем нужен и как применять Hibernate в своих собственных Java-проектах
– как создавать связи между Java-объектами и таблицами в базе данных
– лучшие практики Hibernate для создания топ-приложений
– как просто работать со связями one-to-one, one-to-many и many-to-many и многое другое
Занимайте место - они ограничены.
Узнаете, как выполнять SQL запросы прямо из Java кода, а также глубоко изучите в Hibernate и как правильно его использовать, чтобы быстро реагировать на любой вопрос на собеседовании. Переходите, подробности здесь.
6 954
enum Month {
JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
public class Quest {
public static void main(String[] args) {
Month m = Month.JANUARY;
String season = switch (m) {
case DECEMBER, JANUARY, FEBRUARY -> "Winter";
case MARCH, APRIL, MAY -> "Spring";
case JUNE, JULY, AUGUST -> "Summer";
case SEPTEMBER, OCTOBER -> "Autumn";
};
System.out.println(season);
}
}
#java #quest
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
