Source Code
197 subscribers
30 photos
3 files
80 links
Download Telegram
#spring

Каждое приложение Spring Boot - это веб-приложение, работающее во встроенном Apache Tomcat?

Когда дело доходит до веб-приложений, Spring Boot работает с множеством контейнеров сервлетов. По умолчанию используется Apache Tomcat , но вы также можете использовать веб-приложение с Jetty, Undertow или вообще без встроенного контейнера сервлетов.

Более того, Spring Boot не привязан только к веб-приложениям, хотя такое впечатление можно получить, используя зависимость spring-boot-starter-web и, следовательно, автоконфигурацию Spring Boot для веб-сайтов. С помощью Spring Boot вы можете писать все виды сервисов, от пакетных заданий и утилит командной строки до серверных модулей обмена сообщениями и реактивных веб-приложений.
#Spring

Начнем срывать покровы с самых базовых понятий Spring. Бин (bean) — это не что иное, как самый обычный объект. Разница лишь в том, что бинами принято называть те объекты, которые управляются Spring-ом и живут внутри его DI-контейнера. Бином является почти все в Spring — сервисы, контроллеры, репозитории, по сути все приложение состоит из набора бинов. Их можно регистрировать, получать в качестве зависимостей, проксировать, мокать и т.п.
#Spring #java #backEnd
Релиз Spring Native Beta

Недавно
команда, занимающаяся портированием Spring для GraalVM, выпустила первый крупный релиз - Spring Native Beta. Вместе с создателями GraalVM они смогли пофиксить множество багов как в самом компиляторе так и спринге. Теперь у проекта появилась официальная поддержка, свой цикл релизов и его можно щупать.

Согласно документации, ключевые различия между обычным JVM и нативной реализацией заключаются в следующем:

Статический анализ всего приложения выполняется во время сборки.

Неиспользуемые компоненты удаляются во время сборки.

Рефлексия, ресурсы и динамические прокси могут быть настроены только с помощью дополнительных конфигураций.

На время сборки фиксируются все компоненты в Classpath.

Нет ленивой загрузки класса: при загрузке все, что поставляется в исполняемых файлах, будет загружено в память. Например, чтобы вызов Class.forName ("myClass") отработал верно, нужно иметь myClass в файле конфигурации. Если в файле конфигурации не будет найден класс, который запрашивается для динамической загрузки класса, будет выбрано исключение ClassNotFoundException

Часть кода будет запущена во время сборки, чтобы правильно связать компоненты. Например, тесты.

https://www.youtube.com/watch?v=96n_YpGx-JU
#Spring
What is Inversion of Control?

In software engineering, inversion of control (IoC) is a programming principle. IoC inverts the flow of control as compared to traditional control flow. In IoC, custom-written portions of a computer program receive the flow of control from a generic framework. A software architecture with this design inverts control as compared to traditional procedural programming: in traditional programming, the custom code that expresses the purpose of the program calls into reusable libraries to take care of generic tasks, but with inversion of control, it is the framework that calls into the custom, or task-specific, code.
#Spring #backEnd #java
Spring: @Component против @Bean

@Component и @Bean делают две совершенно разные вещи, и их не следует путать.

@Component (а также @Service и @Repository ) используются для автоматического обнаружения и автоматической настройки бобов с помощью сканирования classpath. Существует неявное отображение one-to-one между аннотированным классом и Бобом (то есть один боб на класс). Управление проводкой при таком подходе довольно ограничено, поскольку оно носит чисто декларативный характер.

@Bean используется для явного объявления одного компонента, а не позволяет Spring делать это автоматически, как описано выше. Он отделяет объявление Боба от определения класса.