ru
Feedback
Java | Фишки и трюки

Java | Фишки и трюки

Открыть в Telegram

Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg Менеджер по рекламе: @shmyzna

Больше
6 954
Подписчики
-124 часа
-117 дней
+1330 день
Архив постов
🔒 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

Закрытый клуб для айтишников FAANG School, чьи выпускники работают в Яндексе, СБЕРЕ и других гигантах, запустили бесплатное с
Закрытый клуб для айтишников FAANG School, чьи выпускники работают в Яндексе, СБЕРЕ и других гигантах, запустили бесплатное сообщество для всех, кто изучает Java. Общайся в ламповом чате с такими же людьми «в теме», получай фидбек у опытных разрабов и черпай практические рекомендации от экспертов школы. В чате уже больше 10 000 человек, а новенькие, которые подключатся сейчас, получат доступ к большой библиотеке Java Junior с полезными материалами: – Пошаговая RoadMap по Java – Мануал по Docker. Основные команды и концепции – Микросервисы. Вопросы с собеседований – Шпаргалка по Kafka – Инструкция по работе с Git – Подробный гайд, как найти работу в IT без опыта – Подборка платформ с вакансиями для java-разработчиков Вступай сейчас. Открыли доступ всего на 24 часа!

🔧 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 #BuildSystems

🔞 Java как секс! Если зубрить ее только по книжкам, то кроме теории и деградации, ты ничему не научишься В канале Java, поле
🔞 Java как секс! Если зубрить ее только по книжкам, то кроме теории и деградации, ты ничему не научишься В канале Java, полегче 🥵! ты найдешь лучшие практики написания кода. Действующий тимлид европейского финтеха, самобытно и с долей юмора, делится секретами 🤫: ➖ Гайд по Kafka(причем тут порноактриса Piper Perri)Roadmap java разработчика на 2025Самый кринжовый подарок, сделанный девушке, с помощью программированияКак java крадет твои деньгиТоп 8 ошибок при составлении резюме Самые сложные алгоритмы на моей практике. Не трать на них время Chatgpt telegram bot с нуля на java Миллиард тенге. Самая сложная задача И это только цветочки. Рекомендую!  В этом канале даже джуны становятся сеньорами 😏 🔈 Подписывайся, это самый простой способ прокачать свои хард-скиллы:  @javezka

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 #docker

Уже завтра собеседование на Middle Java с разработчиком из МТС 20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на откры
Уже завтра собеседование на Middle Java с разработчиком из МТС 20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 1. Мария Ядерцова ведущий Java-разработчик в МТС Диджитал и ex. Сбербанк-Технологии будет задавать реальные вопросы и задачи разработчику-добровольцу 2. Мария будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 3. В конце можно будет задать любой вопрос Марии Что узнаешь на прямом эфире от ШОРТКАТ: • Чего ждут от кандидатов на Middle позиции в Java-разработке • Какие вопросы задают на интервью и зачем • Как подготовиться к собесу, чтобы получить оффер Это бесплатно? Бесплатно Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzquWqn86

Надо было по Java брать, такой #&@ни бы не было!
Надо было по Java брать, такой #&@ни бы не было!

⌨️ Что такое 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

⚫️ 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

⌨️ Паттерн проектирования: 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 #Singleton

photo content

⌨️ Создание веб-скрапера с помощью 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 #Jsoup

Получите грант на обучение в Центральном университете Прояви себя, получи грант до 2,8 млн на обучение ИТ и бизнесу в вузе. Для школьников 10-х и 11-х классов, СПО. Подать заявку #реклама apply.centraluniversity.ru О рекламодателе

ВЕБ-СКРАПИНГ Веб-скрапинг — это процесс автоматизированного извлечения данных с веб-сайтов. Этот подход позволяет собирать информацию с различных источников, включая новости, отзывы, цены и другие публичные данные. Такого рода практики помогают исследователям, аналитикам и разработчикам анализировать большие объемы информации и использовать ее для разных целей. Зачем нужен веб-скрапинг? ✔️ Сбор данных: Автоматизированный процесс помогает избежать рутинной работы и значительно экономит время. ✔️ Анализ конкурентов: С помощью скрапа можно отслеживать изменения на сайте конкурентов, выяснять стратегии ценообразования и проводить анализ тенденций. ✔️ Полезные приложения: Создание приложений для мониторинга цен, агрегаторов новостей и других сервисов, использующих живую информацию. И, главное, помните про соблюдение правил: перед скрапингом сайта обязательно ознакомьтесь с его robots.txt — файлом, который указывает, какие страницы можно скрапить, а какие — нет.

Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

Рано сдался)
Рано сдался)

⌨️ 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 #switch

Чит код для новичков в IT Изучите фреймворк Hibernate. В 98% случаев данные веб приложений хранятся в SQL базах, а с Hibernat
Чит код для новичков в 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 и как правильно его использовать, чтобы быстро реагировать на любой вопрос на собеседовании. Переходите, подробности здесь.

Что выведет код?
Anonymous voting

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