Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.10.2024
Сообщений: 10

Подключение PostgreSQL к Spring Boot

28.01.2025, 09:48. Показов 1510. Ответов 0
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой при подключении PostgreSQL к Spring Boot приложению. Пытаюсь создать простое CRUD-приложение для хранения списка задач, но приложение падает при запуске. Вот мои настройки и код:

application.properties:
Java
1
2
3
4
5
spring.datasource.url=jdbc:postgresql://localhost:5432/todo_db
spring.datasource.username=postgres
spring.datasource.password=mysecretpassword
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
Модель:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Entity
public class Task {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
 
    private String name;
 
    private boolean completed;
 
    // геттеры и сеттеры
}
Репозиторий:
Java
1
2
3
@Repository
public interface TaskRepository extends JpaRepository<Task, Long> {
}
Контроллер:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@RestController
@RequestMapping("/api/tasks")
public class TaskController {
 
    private final TaskRepository taskRepository;
 
    public TaskController(TaskRepository taskRepository) {
        this.taskRepository = taskRepository;
    }
 
    @GetMapping
    public List<Task> getAllTasks() {
        return taskRepository.findAll();
    }
}
Приложение падает с ошибкой:

org.postgresql.util.PSQLException: FATAL: database "todo_db" does not exist

Я создал базу данных через pgAdmin, но ошибка все равно возникает. Что я делаю не так? Нужно ли какие-то дополнительные настройки в PostgreSQL или приложении?







24. Коллекции: Java collections framework. Классификация интерфейсов коллекций. Интерфейс Collection.

Java Collections Framework (JCF) — это набор интерфейсов, классов и алгоритмов, которые предоставляют стандартные способы работы с коллекциями объектов. Коллекции используются для хранения, обработки и управления группами объектов.
Классификация интерфейсов коллекций
Интерфейсы коллекций в Java можно разделить на несколько категорий:
1. Основные интерфейсы:
o Collection: Базовый интерфейс для всех коллекций.
o List: Упорядоченная коллекция, которая может содержать дубликаты.
o Set: Коллекция, которая не содержит дубликатов.
o Queue: Коллекция, предназначенная для хранения элементов в порядке, который используется для обработки (например, FIFO).
o Deque: Двусторонняя очередь, которая поддерживает добавление и удаление элементов с обоих концов.
2. Интерфейсы для работы с отображениями (Map):
o Map: Коллекция, которая хранит пары ключ-значение. Ключи уникальны.
3. Интерфейсы для работы с отсортированными коллекциями:
o SortedSet: Упорядоченный набор, который не содержит дубликатов.
o SortedMap: Упорядоченное отображение, которое хранит пары ключ-значение, отсортированные по ключам
Интерфейс Collection является корневым интерфейсом для всех коллекций в Java. Он определяет основные методы для работы с коллекциями:
• Добавление элементов:
o boolean add(E e): Добавляет элемент в коллекцию.
o boolean addAll(Collection<? extends E> c): Добавляет все элементы из указанной коллекции.
• Удаление элементов:
o boolean remove(Object o): Удаляет указанный элемент из коллекции.
o boolean removeAll(Collection<?> c): Удаляет все элементы, которые содержатся в указанной коллекции.
o void clear(): Удаляет все элементы из коллекции.
• Проверка наличия элементов:
o boolean contains(Object o): Проверяет, содержит ли коллекция указанный элемент.
o boolean containsAll(Collection<?> c): Проверяет, содержит ли коллекция все элементы из указанной коллекции.
• Размер коллекции:
o int size(): Возвращает количество элементов в коллекции.
o boolean isEmpty(): Проверяет, пуста ли коллекция.
• Итерация по элементам:
o Iterator<E> iterator(): Возвращает итератор для обхода элементов коллекции.
• Преобразование в массив:
o Object[] toArray(): Возвращает массив, содержащий все элементы коллекции.
o <T> T[] toArray(T[] a): Возвращает массив, содержащий все элементы коллекции, с указанным типом.


25. Списки. Интерфейс List. Основные классы, реализующие интерфейс List. ArrayList, особенности, методы. Comparator.
В Java интерфейс List является частью коллекций (Collections Framework) и представляет собой упорядоченную коллекцию элементов, которые могут содержать дубликаты. Элементы в списке доступны по индексу, начиная с 0.
Основные классы, реализующие интерфейс List
1. ArrayList:
• Динамический массив, который автоматически увеличивает свой размер при добавлении элементов.
• Быстрый доступ по индексу, но медленное добавление и удаление элементов в середине списка.
2. LinkedList:
• Реализация списка на основе двусвязного списка.
• Быстрое добавление и удаление элементов в начале и конце списка, но медленный доступ по индексу.
3. Vector:
• Устаревший класс, похожий на ArrayList, но с синхронизированными методами.
• Медленнее ArrayList из-за синхронизации.
4. Stack:
• Подкласс Vector, реализующий структуру данных "стек" (LIFO).
ArrayList: особенности и методы
ArrayList — это наиболее часто используемая реализация интерфейса List. Основные особенности:
• Динамический размер: ArrayList автоматически увеличивает свой размер при добавлении элементов.
• Быстрый доступ по индексу: Время доступа к элементу по индексу — O(1).
• Медленное добавление/удаление в середине: Время добавления или удаления элемента в середине списка — O(n), так как требуется сдвиг элементов.
Основные методы ArrayList:
• add(E e): Добавляет элемент в конец списка.
• add(int index, E element): Вставляет элемент на указанную позицию.
• get(int index): Возвращает элемент по указанному индексу.
• set(int index, E element): Заменяет элемент на указанной позиции.
• remove(int index): Удаляет элемент по указанному индексу.
• remove(Object o): Удаляет первое вхождение указанного элемента.
• size(): Возвращает количество элементов в списке.
• clear(): Удаляет все элементы из списка.
• contains(Object o): Проверяет, содержится ли элемент в списке.
• indexOf(Object o): Возвращает индекс первого вхождения элемента.
• isEmpty(): Проверяет, пуст ли список.
Comparator — это функциональный интерфейс, который используется для сравнения двух объектов. Он позволяет сортировать коллекции по заданному критерию.
Основной метод интерфейса Comparator:
• compare(T o1, T o2): Сравнивает два объекта


26. Интерфейс Set. Основные реализации. HashSet. TreeSet.
Интерфейс Set в Java представляет собой коллекцию, которая не допускает дубликатов. Это означает, что каждый элемент в Set может встречаться только один раз. Set не гарантирует порядок элементов, за исключением некоторых его реализаций.
Основные реализации интерфейса Set
1. HashSet:
• Основан на хеш-таблице.
• Не гарантирует порядок элементов.
• Быстрые операции добавления, удаления и проверки на наличие элемента (в среднем O(1)).
• Не допускает дубликатов.
2. LinkedHashSet:
• Подкласс HashSet, который сохраняет порядок добавления элементов.
• Использует связный список для хранения элементов в порядке их вставки.
• Быстрые операции, как и у HashSet, с дополнительным преимуществом сохранения порядка.
3. TreeSet:
• Реализует интерфейс NavigableSet и основан на красно-черном дереве.
• Гарантирует сортировку элементов в естественном порядке или по заданному компаратору.
• Операции добавления, удаления и поиска имеют сложность O(log n).
• Не допускает дубликатов.
HashSet: особенности и методы
HashSet — это наиболее часто используемая реализация интерфейса Set. Основные особенности:
• Неупорядоченность: Элементы не имеют фиксированного порядка.
• Быстродействие: Операции добавления, удаления и проверки на наличие элемента выполняются быстро.
• Не допускает дубликатов: Если вы попытаетесь добавить дубликат, HashSet просто проигнорирует его.
Основные методы HashSet:
• add(E e): Добавляет элемент в множество.
• remove(Object o): Удаляет элемент из множества.
• contains(Object o): Проверяет, содержится ли элемент в множестве.
• size(): Возвращает количество элементов в множестве.
• isEmpty(): Проверяет, пусто ли множество.
• clear(): Удаляет все элементы из множества.
• iterator(): Возвращает итератор для перебора элементов.
TreeSet: особенности и методы
TreeSet — это реализация Set, которая хранит элементы в отсортированном порядке. Основные особенности:
• Сортировка: Элементы хранятся в отсортированном порядке, что позволяет выполнять операции поиска и навигации.
• Сложность операций: Операции добавления, удаления и поиска имеют сложность O(log n).
• Не допускает дубликатов: Как и все реализации Set, TreeSet не допускает дубликатов.
Основные методы TreeSet:
• add(E e): Добавляет элемент в множество.
• remove(Object o): Удаляет элемент из множества.
• contains(Object o): Проверяет, содержится ли элемент в множестве.
• first(): Возвращает первый (наименьший) элемент.
• last(): Возвращает последний (наибольший) элемент.
• lower(E e): Возвращает наибольший элемент, меньший указанного.
• higher(E e): Возвращает наименьший элемент, больший указанного.
• size(): Возвращает количество элементов в множестве.
• isEmpty(): Проверяет, пусто ли множество.
• clear(): Удаляет все элементы из множества.

27. Очереди в Java, интерфейс Queue, PrioritiQueue. Структура, основные методы.
Очередь (Queue) в Java — это структура данных, которая следует принципу FIFO (First In, First Out), что означает, что элементы добавляются в конец очереди и извлекаются из начала. Очереди часто используются в сценариях, где необходимо обрабатывать элементы в порядке их поступления.
Интерфейс Queue
Интерфейс Queue является частью Java Collections Framework и расширяет интерфейс Collection. Он определяет методы для работы с очередями.
Основные реализации интерфейса Queue
1. LinkedList: Реализует интерфейс Queue и может использоваться как очередь. Поддерживает все операции, включая добавление, удаление и доступ к элементам.
2. ArrayDeque: Реализация очереди на основе динамического массива. Поддерживает операции добавления и удаления элементов с обеих сторон (как очередь, так и стек).
3. PriorityQueue: Реализация очереди, которая сортирует элементы на основе их естественного порядка или заданного компаратора. Элементы с более высоким приоритетом извлекаются первыми.
PriorityQueue: структура и основные методы
PriorityQueue — это реализация интерфейса Queue, которая организует элементы в порядке их приоритета. Элементы с более высоким приоритетом будут извлекаться первыми, независимо от порядка их добавления.
Основные особенности PriorityQueue:
• Не гарантирует порядок: Хотя элементы извлекаются в порядке приоритета, порядок добавления не сохраняется.
• Использует хип: Внутренне PriorityQueue реализован с использованием структуры данных "куча" (heap), что обеспечивает эффективное извлечение элементов с высоким приоритетом.
• Не допускает null: PriorityQueue не может содержать null элементы.
Основные методы PriorityQueue:
• add(E e): Добавляет элемент в очередь.
• offer(E e): Добавляет элемент в очередь (аналогично add, но возвращает false, если не удалось добавить).
• remove(): Удаляет и возвращает элемент с наивысшим приоритетом. Если очередь пуста, выбрасывает NoSuchElementException.
• poll(): Удаляет и возвращает элемент с наивысшим приоритетом или возвращает null, если очередь пуста.
• peek(): Возвращает элемент с наивысшим приоритетом, не удаляя его, или возвращает null, если очередь пуста.
• size(): Возвращает количество элементов в очереди.
• isEmpty(): Проверяет, пуста ли очередь.


28. Байтовые потоки InputStream и OutputStream. Консольный ввод и вывод Java. Символьные потоки данных. Абстрактные классы Writer, Reader.
Байтовые потоки: InputStream и OutputStream
В Java байтовые потоки используются для работы с бинарными данными. Они позволяют читать и записывать данные в виде последовательности байтов. Основные абстрактные классы для работы с байтовыми потоками:
• InputStream: Абстрактный класс, представляющий входной поток байтов. Он предоставляет методы для чтения данных.
• OutputStream: Абстрактный класс, представляющий выходной поток байтов. Он предоставляет методы для записи данных.
Основные методы InputStream:
• int read(): Читает следующий байт данных из входного потока и возвращает его в виде целого числа (от 0 до 255). Если конец потока достигнут, возвращает -1.
• int read(byte[] b): Читает несколько байтов данных из входного потока и записывает их в массив байтов b. Возвращает количество прочитанных байтов или -1, если конец потока достигнут.
• void close(): Закрывает поток и освобождает связанные с ним ресурсы.
Основные методы OutputStream:
• void write(int b): Записывает указанный байт в выходной поток.
• void write(byte[] b): Записывает массив байтов в выходной поток.
• void close(): Закрывает поток и освобождает связанные с ним ресурсы.
Консольный ввод и вывод в Java
Для работы с консольным вводом и выводом в Java часто используются классы System.in и System.out.
• System.in: Это стандартный входной поток, который обычно связан с клавиатурой. Он является экземпляром InputStream.
• System.out: Это стандартный выходной поток, который обычно связан с консолью. Он является экземпляром OutputStream.
Символьные потоки данных
Символьные потоки используются для работы с текстовыми данными. Они позволяют читать и записывать данные в виде символов, а не байтов. Основные абстрактные классы для работы с символьными потоками:
• Reader: Абстрактный класс, представляющий входной символьный поток. Он предоставляет методы для чтения символов.
• Writer: Абстрактный класс, представляющий выходной символьный поток. Он предоставляет методы для записи символов.
Основные методы Reader:
• int read(): Читает следующий символ из входного потока и возвращает его в виде целого числа. Если конец потока достигнут, возвращает -1.
• int read(char[] cbuf): Читает несколько символов из входного потока и записывает их в массив символов cbuf. Возвращает количество прочитанных символов или -1, если конец потока достигнут.
• void close(): Закрывает поток и освобождает связанные с ним ресурсы.
Основные методы Writer:
• void write(int c): Записывает указанный символ в выходной поток.
• void write(char[] cbuf): Записывает массив символов в выходной поток.
• void close(): Закрывает поток и освобождает связанные с ним ресурсы.

29. Чтение и запись файлов. Классы FileInputStream, FileOutputStream. Файловый вводвывод с использованием символьных потоков. Классы FileReader и FileWriter.
В Java для работы с файлами используются различные классы, которые позволяют читать и записывать данные. Основные классы для работы с байтовыми потоками — это FileInputStream и FileOutputStream, а для символьных потоков — FileReader и FileWriter.
Чтение и запись с использованием байтовых потоков
Класс FileInputStream
FileInputStream используется для чтения байтов из файла. Он позволяет считывать данные в виде байтов, что полезно для работы с бинарными файлами.
Класс FileOutputStream
FileOutputStream используется для записи байтов в файл. Он позволяет записывать данные в виде байтов, что также полезно для работы с бинарными файлами.
Класс FileReader
FileReader используется для чтения символов из файла. Он позволяет считывать текстовые данные, что делает его подходящим для работы с текстовыми файлами.
Класс FileWriter
FileWriter используется для записи символов в файл. Он позволяет записывать текстовые данные в файл.

30. Многопоточное программирование: общие принципы.
Многопоточное программирование: общие принципы
Многопоточное программирование — это парадигма, позволяющая выполнять несколько потоков (или процессов) одновременно, что может значительно повысить производительность и отзывчивость приложений. В Java многопоточность реализуется с помощью классов и интерфейсов, предоставляемых Java Concurrency API. Ниже приведены основные принципы и концепции, связанные с многопоточным программированием.
1. Поток (Thread)
• Определение: Поток — это наименьшая единица выполнения в программе. Каждый поток имеет свою собственную стековую память и может выполняться параллельно с другими потоками.
• Создание потоков: В Java потоки можно создавать несколькими способами:
• Наследование от класса Thread: Создайте подкласс Thread и переопределите метод run().
• Реализация интерфейса Runnable: Создайте класс, реализующий интерфейс Runnable, и передайте его в объект Thread.
2. Синхронизация
• Проблема состояния гонки: Когда несколько потоков обращаются к общим ресурсам (например, переменным или объектам), может возникнуть состояние гонки, когда результаты зависят от порядка выполнения потоков.
• Синхронизация: Для предотвращения состояния гонки используются механизмы синхронизации:
• Синхронизированные методы: Используйте ключевое слово synchronized для методов, чтобы гарантировать, что только один поток может выполнять метод в одно и то же время.
• Синхронизированные блоки: Используйте синхронизированные блоки для более точного контроля над тем, какие части кода должны быть защищены от одновременного доступа.
3. Пул потоков
• Определение: Пул потоков — это коллекция потоков, которые могут быть повторно использованы для выполнения задач. Это позволяет избежать накладных расходов на создание и уничтожение потоков.
• Использование: Java предоставляет ExecutorService для управления пулами потоков, что упрощает выполнение асинхронных задач.
4. Параллелизм и конкуренция
• Параллелизм: Это выполнение нескольких операций одновременно, что может быть достигнуто с помощью многопоточности.
• Конкуренция: Это ситуация, когда несколько потоков пытаются получить доступ к общим ресурсам, что может привести к состояниям гонки и другим проблемам.


31. Класс Тhread и интерфейс Runnable: создание потоков, приоритеты потоков.
В Java многопоточность может быть реализована с помощью класса Thread и интерфейса Runnable. Оба подхода позволяют создавать и управлять потоками, но имеют свои особенности и преимущества.
1. Класс Thread
Класс Thread представляет собой поток выполнения. Вы можете создать новый поток, создав экземпляр класса Thread и переопределив его метод run(), который содержит код, выполняемый в этом потоке.
2. Интерфейс Runnable
Интерфейс Runnable представляет собой функциональный интерфейс, который содержит единственный метод run(). Этот подход более гибкий, так как позволяет разделять логику потока от его реализации. Вы можете реализовать интерфейс Runnable в любом классе и передать его в объект Thread
Приоритеты потоков
В Java каждый поток имеет приоритет, который определяет, как часто он будет получать доступ к процессорному времени по сравнению с другими потоками. Приоритеты потоков могут быть установлены с помощью методов setPriority(int priority) и getPriority().
Уровни приоритетов
Приоритеты потоков в Java могут принимать значения от Thread.MIN_PRIORITY (1) до Thread.MAX_PRIORITY (10), с Thread.NORM_PRIORITY (5) как значением по умолчанию.

32. Приостановка и прерывание потоков. Определение момента завершения потока.
В Java управление потоками включает в себя возможность приостановки, возобновления и завершения потоков. Однако важно отметить, что некоторые методы, такие как stop() и suspend(), устарели и не рекомендуются к использованию из-за проблем с безопасностью и целостностью данных. Вместо этого рекомендуется использовать более безопасные подходы для управления потоками.
1. Приостановка потоков
Для приостановки потока можно использовать флаг состояния, который будет проверяться в цикле выполнения потока. Это позволяет безопасно приостанавливать и возобновлять поток.
2. Прерывание потоков
Прерывание потока — это способ уведомить поток о том, что он должен завершить свою работу. Для этого используется метод interrupt(), который устанавливает флаг прерывания для потока. Поток может проверять этот флаг и завершать свою работу, если он установлен.
Определение момента завершения потока
Чтобы определить, завершился ли поток, можно использовать метод isAlive(), который возвращает true, если поток еще выполняется, и false, если он завершил свою работу.

33. Синхронизация потоков.
Синхронизация потоков — это механизм, который позволяет контролировать доступ к общим ресурсам в многопоточных приложениях. Когда несколько потоков пытаются одновременно получить доступ к общим данным, может возникнуть состояние гонки, что может привести к непредсказуемым результатам. Синхронизация помогает избежать таких проблем, обеспечивая, что только один поток может получить доступ к ресурсу в определенный момент времени.
Основные концепции синхронизации
1. Синхронизированные методы:
• Вы можете объявить метод как синхронизированный, добавив ключевое слово synchronized перед его объявлением. Это гарантирует, что только один поток может выполнять этот метод для данного объекта в одно и то же время.
Синхронизированные блоки:
• Синхронизированные блоки позволяют более точно контролировать, какие части кода должны быть защищены от одновременного доступа. Это может быть полезно для повышения производительности, так как позволяет избежать блокировки всего метода.
Синхронизация на уровне класса:
• Вы можете синхронизировать методы или блоки кода на уровне класса, используя ключевое слово synchronized с классом в качестве объекта блокировки. Это гарантирует, что только один поток может выполнять синхронизированный метод для всех экземпляров класса.
Использование ReentrantLock
Java также предоставляет более гибкие механизмы синхронизации через класс ReentrantLock, который позволяет более детально управлять блокировками.

34. Архитектура JDBC (Java DataBase Connectivity). Двух и трехуровневые модели доступа к базе данных. Преимущества и недостатки JDBC.
Архитектура JDBC (Java DataBase Connectivity)
JDBC (Java DataBase Connectivity) — это API, который позволяет Java-приложениям взаимодействовать с базами данных. Основные компоненты JDBC:
1. JDBC Driver: Компонент, реализующий интерфейсы JDBC для конкретной базы данных. Существует несколько типов драйверов:
• Тип 1: JDBC-ODBC Bridge Driver.
• Тип 2: Native-API Driver.
• Тип 3: Network Protocol Driver.
• Тип 4: Thin Driver (чисто Java-драйвер).
2. JDBC API: Набор интерфейсов и классов для выполнения SQL-запросов и управления транзакциями. Основные интерфейсы:
• DriverManager
• Connection
• Statement
• PreparedStatement
• ResultSet
3. JDBC Application: Java-приложение, использующее JDBC API для работы с базой данных.
Двухуровневая и трехуровневая модели доступа к базе данных
Двухуровневая модель
• Описание: Клиентское приложение напрямую взаимодействует с базой данных через JDBC.
• Преимущества: Простота реализации, низкая задержка.
• Недостатки: Ограниченная масштабируемость, проблемы с безопасностью.
Трехуровневая модель
• Описание: Клиентское приложение взаимодействует с сервером приложений, который затем взаимодействует с базой данных.
• Преимущества: Улучшенная безопасность, лучшая масштабируемость, упрощение управления транзакциями.
• Недостатки: Более сложная архитектура, увеличение задержки.
Преимущества и недостатки JDBC
Преимущества
1. Портативность: Работает на любой платформе, поддерживающей Java.
2. Стандартный интерфейс: Упрощает разработку и поддержку приложений.
3. Поддержка различных баз данных: Множество драйверов для разных СУБД.
4. Гибкость: Позволяет выполнять простые и сложные SQL-запросы.
Недостатки
1. Сложность управления ресурсами: Необходимость самостоятельно управлять соединениями и запросами.
2. Отсутствие абстракции: Низкоуровневый доступ может усложнить разработку.
3. Проблемы с производительностью: Неправильное использование может привести к утечкам ресурсов и снижению производительности.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2025, 09:48
Ответы с готовыми решениями:

Контейнеризация Spring boot приложения с postgresql
Здравствуйте. Расскажите пожалуйста, как правильно собирать dockerfile или docker-compose , если проект содержит в себе java spring...

Redis cache in spring boot + hibernate + PostgreSQL
Добрый день. Возникло пару вопросов по redis cache в spring boot + hibernate + PostgreSQL. Заранее извиняюсь за nubовские вопросы...

Spring + Hibernate подключение к postgresql 11
Не могу подключиться к бд. Через pgAdmin подключение проходит нормально. ] &lt;?xml version=&quot;1.0&quot;...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2025, 09:48
Помогаю со студенческими работами здесь

Spring Boot и подключение MySQl
jdbc.properties spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver...

Project 'org.springframework.boot:spring-boot-starter-parent:2.3.2.RELEASE' not found
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; ...

Spring Boot VS Tomcat+Spring - что выбрать?
Всем доброго дня! Я наверное еще из старой школы - пилю мелкие проект на Spring + Tomcat... Но хотелось бы чего-то нового ))) ...

Что такое Spring, Spring Boot?
Здравствуйте. Никогда не использовал Spring, Spring Boot. Возник такой вопрос можно ли его использовать в IDE для java Se. Или для...

Spring Boot или Spring MVC?
Добрый день форумчане. Прошу совета у опытных коллег знающих и работающих с фреймворком Spring. Недавно решил сделать проект для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru