Что на самом деле происходит, когда я добавляю зависимость в Spring (используя Maven)?

Я пытаюсь понять, как летом использовать фреймворк Spring с нуля. Я новичок в Spring и даже новичок в Maven, хотя я немного знаком с Java и использую Eclipse.

Работая с несколькими онлайн-руководствами по Spring (например, Вот этот - сайт на корейском языке, но код написан на Java), я много раз сталкивался с термином внедрение зависимости. Из того, что я узнал до сих пор, и, пожалуйста, поправьте меня, если я неправильно понимаю, добавление (внедрение) зависимости выполняется путем добавления некоторого кода в файл pom.xml, например:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>${spring.version}</version>
</dependency>

Но что именно это делает? Что такое groupId, artifactId и version и как они используются? Как это соотносится с более широкой весенней картиной? У меня есть основы доступа к базам данных с помощью SQL, но я изо всех сил пытаюсь понять, как перейти с JDBC на Spring, и особенно сложно самому продираться через незнакомые инструменты (например, Spring и Maven).

Любая помощь будет оценена.

То, что вы показываете, взято из файла pom.xml - это файл дескриптора, который позволяет Maven построить ваш проект. Maven не имеет отношения к Spring - вы можете использовать maven полностью без Spring. А Spring можно использовать без Maven. Вам нужно прочитать учебники как для Maven, так и для Spring.

Erwin Bolwidt 29.05.2018 06:20

Привет, пожалуйста, взгляните на Как задать хороший вопрос, потому что вы получите такие вещи, как idownvotedbecau.se/noresearchidownvotedbecau.se/nomcveidownvotedbecau.se/nocodeidownvotedbecau.se/noattempt

D.B. 29.05.2018 06:22

@ErwinBolwidt Понятно ... Спасибо. Это действительно многое проясняет.

BittersweetNostalgia 29.05.2018 06:58

@ Д. Спасибо, буду иметь это в виду для будущих вопросов.

BittersweetNostalgia 29.05.2018 06:58
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
44
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Здесь вы смешиваете два понятия. Зависимости, объявленные в Maven, не имеют ничего общего с инъекцией зависимостей Spring.

Объявление зависимости в Maven просто делает этот модуль доступным для сборки. Он добавляет его в путь к классам.

С другой стороны, внедрение зависимостей вводит bean-компоненты (или другие данные), которые нужны другому bean-компоненту, через конструктор или через сеттеры.

Другие вопросы по теме