Введение
Что делает мир java лучше, программисты становятся более дружелюбными, уровень облысения становится менее высоким, чтобы программистам больше не приходилось каждый день 996 раз, чтобы найти девушку?
Весна.
Что делает Java-приложения корпоративного уровня простыми для понимания, снижает порог вхождения для Java-программистов и приводит к дилемме для Java-программистов во всем мире?
Весна.
Что такое тот факт, что король стал фактическим деловым стандартом, так что создатель правил также дрожит в нескольких пунктах?
Весна.
Проще говоря, Spring удовлетворяет все ваши представления о java-программах. Java-программист попадет в объятия Spring.
Сегодняшний документ представляет собой краткое изложение основ Spring. В конце статьи есть небольшая пасхалка, отступить может каждый!
Основы весны
Spring родился в 2003 году как ответ на предыдущую сложную спецификацию J2EE. Некоторые считают, что Spring и J2EE являются конкурентами, на самом деле они дополняют друг друга.
Последняя версия Spring – 5.3.0. Используя Spring, мы можем легко создавать приложения корпоративного уровня. В то же время Spring также обеспечивает поддержку groovy и Kotlin. После Spring 5.1 для правильной работы требуется JDK8 или выше.
Для получения дополнительной информации, пожалуйста, посетитеwww.flydean.com
Spring в узком смысле относится к основе Spring, такой как Spring Framework Runntime, как показано на следующем рисунке:
В широком смысле Spring относится ко всему семейству Spring, включая Spring Boot, Spring Cloud и другие проекты.
Здесь мы обсуждаем Spring Framework в узком смысле. Его можно разделить на следующие модули:
- Ядро — ядро является ядром работы Spring, в основном включая контейнер IoC, события, ресурсы, i18n, проверку, привязку данных, преобразование типов, SpEL, AOP и так далее.
- Тестирование. Тестирование — очень важный модуль в Spring, включая Mock Objects, TestContext Framework, Spring MVC Test, WebTestClient и т. д.
- Доступ к данным - эта часть связана с доступом к базе данных, включая транзакции, поддержку DAO, JDBC, O / R Mapping, XML Marshalling и т. Д.
- Web Servlet — традиционная поддержка Web Servlet, включая Spring MVC, WebSocket, SockJS, STOMP Messaging и так далее.
- Web Reactive — это новая поддержка Spring 5 для реактивных систем, включая Spring WebFlux, WebClient, WebSocket и т. д.
- Интеграция — это поддержка сторонних систем, в том числе часто используемых сторонних систем, таких как Remoting, JMS, JCA, JMX, Email, Tasks, Scheduling, Caching и т. д.
- Языки. Наконец, есть поддержка других языков JVM, включая динамические языки, такие как Kotlin, Groovy и т. д.
Spring Framework разделен на множество модулей, мы можем свободно выбирать, какой модуль использовать при создании приложения. Основной модуль — это основной контейнер: включая модуль конфигурации и механизм внедрения зависимостей. В дополнение к этому Spring Framework обеспечивает базовую поддержку различных архитектур приложений, включая обмен сообщениями, данные транзакций, хранилище и веб-сайты. Он также включает веб-фреймворк Spring MVC на основе сервлетов и новейший реактивный веб-фреймворк Spring WebFlux.
Основная основная технология
Основная технология пружины является наиболее важным содержанием весной, а самая важная вещь в ядре является инверсией контейнера управления (МОК) пружинной структуры.
IOC полностью применяется в Spring с использованием методов аспектно-ориентированного программирования (AOP) в Spring. Кроме того, Spring создала собственную структуру АОП, и Spring также обеспечивает интеграцию AspectJ, сторонней среды АОП, для удовлетворения потребностей пользователей с различными потребностями.
IOC также известен как внедрение зависимостей (DI). Он относится к процессу, посредством которого объект определяет свои зависимости (то есть другие объекты, работающие с ним) только через параметры конструктора, параметры фабричного метода или через свойства, установленные в экземпляре объекта после его создания или возврата из заводской метод. Эти зависимости внедряются, когда контейнер создает bean-компонент.
Этот процесс противоположен тому, как bean-компонент управляет созданием самого себя или находит свои зависимости, непосредственно создавая класс или шаблон локатора службы (отсюда и название инверсия управления).
- Справочное руководство Spring5: Контейнер IOC
- Справочное руководство Spring5: внедрение зависимостей
Bean — это бизнес-компонент в Spring.Мы завершаем финальную функцию бизнес-логики, создавая различные bean-компоненты.
Внутри контейнера определение каждого бина может быть представлено как BeanDefinition, и через BeanDefinition можно получить много информации о бине, включая: имя пакета, область действия бина, жизненный цикл, ссылки на бин и зависимости и т. д.
- Справочное руководство Spring5: Создание бина
- Справочное руководство Spring 5: Bean Scope
- Справочное руководство по Spring 5: управление жизненным циклом компонентов
- Справочное руководство по Spring 5: расширения контейнеров
- Справочное руководство Spring 5: Конфигурация контейнера на основе аннотаций
- Справочное руководство Spring 5: сканирование компонентов
- Справочное руководство Spring5: Стандартные аннотации JSR 330
От первоначального процедурного программирования до более позднего объектно-ориентированного программирования способ написания программ претерпел серьезные изменения.ООП инкапсулирует бизнес-логику в объекты один за другим, и все операции преобразуются в операции над объектами.
Объектно-ориентированное программирование сейчас очень распространено. Вообще говоря, пока оно поддерживается языками высокого уровня, оно также имеет недостатки. Например, если мы хотим выполнить некоторые операции над объектами (такие как подсчет времени выполнения метод в каждом объекте), иногда эта ориентация объекта может не соответствовать ее возможностям. Нам может понадобиться добавить код для подсчета времени к каждому объекту, так есть ли лучший способ справиться с этой проблемой?
Аспектно-ориентированное программирование (АОП) дополняет объектно-ориентированное программирование (ООП), предлагая альтернативный способ мышления о структуре программы. Ключевой единицей модульности в ООП является класс, а единицей модульности в АОП — аспект. Аспекты поддерживают модульность для нескольких типов и объектов, таких как управление транзакциями. (В литературе по АОП этот вопрос часто называют «сквозным».)
- Справочное руководство по Spring 5: Введение в Spring AOP
- Справочное руководство Spring5: Примечание AspectJ
- Справочное руководство Spring 5: АОП на основе схемы
- Справочное руководство Spring5: прокси-серверы AOP
- Справочное руководство Spring5: возможность настройки для расширенного программирования AspectJ
Вообще говоря, bean-компонент содержит конструктор по умолчанию без аргументов, а также методы получения и установки свойств.
В пакете org.springframework.beans есть очень важный класс, называемый интерфейсом BeanWrapper, и его реализация BeanWrapperImpl.BeanWrapper предоставляет функции установки и получения значений свойств (одиночных или пакетных), получения дескрипторов свойств и запроса свойств, чтобы определить, они доступны для чтения или записи.
Кроме того, BeanWrapper также поддерживает вложенные свойства, позволяя устанавливать свойства дочерних свойств на бесконечную глубину. BeanWrapper также поддерживает добавление стандартных свойств JavaBeans PropertyChangeListeners и VetoableChangeListeners без необходимости кода поддержки в целевом классе. Наконец, BeanWrapper поддерживает установку индексированных свойств. BeanWrapper обычно используется не напрямую кодом приложения, а DataBinder и BeanFactory.
Spring предоставляет очень удобный механизм обработки событий, включая класс событий ApplicationEvent и класс прослушивателя событий ApplicationListener. Он реализует режим дизайнера.Если компонент, реализующий интерфейс ApplicationListener, развернут в контейнере Spring, компонент будет получать уведомление каждый раз, когда ApplicationEvent публикуется в ApplicationContext.
Полное название SpEL называется Spring Expression Language. Обычно он используется для облегчения оценки в XML или аннотациях.Его можно использовать, написав такой формат, как #{ }.
Spring определяет, что интерфейс ресурсов используется для доступа к ресурсам.Вообще говоря, есть две формы, одна форма URL загружается из внешней ссылки, другая форма файла из самой системы.
Тестирование
Команда Spring выступает за разработку через тестирование (TDD). Команда Spring обнаружила, что правильное использование Inversion of Control (IoC) определенно упростит модульное и интеграционное тестирование (поскольку наличие методов установки класса и соответствующих конструкторов упрощает их объединение в тестах без необходимости устанавливать локатор службы). реестр и подобные структуры).
Примеры следует продолжить...
Data Access
Управление транзакциями может быть упрощено с помощью Spring, а согласованный интерфейс DAO предоставляется для различных технологий доступа к данным (таких как JDBC, Hibernate или JPA), так что можно легко переключаться между вышеуказанными технологиями сохранения без учета адаптации различных технологий доступа к данным. технологии.
Примеры следует продолжить...
Web Servlet
Весна предоставляет Funper MVC Framework для поддержки веб-сайта. Как и многие другие веб-фреймворки, Spring MVC предназначен вокруг шаблона переднего контроллера, где центральная диспетчера сервлета обеспечивает общие алгоритмы для обработки запроса, в то время как фактическая работа выполняется настраиваемыми компонентами делегата. Модель очень гибкая и поддерживает несколько рабочих процессов.
Как и любой сервлет, DispatcherServlet необходимо объявить и сопоставить с помощью конфигурации Java или в файле web.xml в соответствии со спецификацией сервлета. В свою очередь, DispatcherServlet использует конфигурацию Spring для обнаружения компонентов делегирования, необходимых для сопоставления запросов, разрешения представлений, обработки исключений и т. д.
Web Reactive
В дополнение к поддержке традиционных веб-сервлетов Spring также представляет инфраструктуру WebFlux и реактивный веб-клиент для поддержки реактивных систем.
Платформа WebFlux неблокирует и должна работать на таких серверах, как контейнеры Netty, Undertow и Servlet 3.1+.
Примеры следует продолжить...
Суммировать
Раньше я был очень наивен и потратил несколько месяцев, чтобы перевести официальный документ Spring 5.x предложение за предложением. Теперь он посвящен всем. Вы можете скачать его. Если вы можете, пожалуйста, следуйте за мной и дайте мне щелчок Отлично, спасибо:
Руководство по Spring Framework 5.x на китайском языке
Друзья, которые не хотят скачивать, могут прочитать прямо по этой ссылке.Ссылка для чтения китайского документа Spring-Framework-Documentation
Автор статьи: о программе flydean
Ссылка на эту статью:www.flydean.com/spring5/
Источник этой статьи: блог flydean
Добро пожаловать, обратите внимание на мой публичный номер: вас ждут самые интересные вещи о программе!