2016-10-11 5 views
1

Мне просто интересно, для чего используется <groupId>org.springframework</groupId <artifactId>spring-beans</artifactId>? Тот же вопрос о spring-context.Какие весенние бобы и весенний контекст используются?

Я не вижу явных зависимостей от этого модуля. Как они используются весной? Почему они не включены в spring-core?

ответ

1

Spring Framework разделен для уточнения и минимизации зависимостей их частей, и вы можете свести к минимуму необходимые зависимости вашего проекта. Все три библиотеки, которые вы упомянули, являются частью основного контейнера, где spring-context зависит от spring-beans и spring-beans зависит от spring-core. Некоторые библиотеки Spring имеют меньше зависимостей, такие как spring-expression только в зависимости от ядра, но не на бобах или контексте:

spring-context 
+- spring-beans 
    +- spring-core 

spring-expression 
+- spring-core 

spring-webmvc 
+- spring-web 
    +- spring-context 
    \- spring-aop 
+- spring-context 
\- spring-expression 

(упрощено, не показывая всю транзитивную зависимость, при использовании Maven попробовать mvn dependency:tree)

Так сопровождающие spring-expression имеет дело только с spring-core. Меньшие зависимости делают обязанности и возможности более ясными. И это мешает вам использовать «все», что облегчает избавление от устаревших API. Каждая из библиотек имеет собственные (не Spring) зависимости. Чтобы обновить любой из них, стало бы тяжело, если бы все в весенней экосистеме и любой проект в зависимости от Весны просто напрямую зависели бы от всех. Одна из причин, почему большинство библиотек OpenSource отошли от «* -вса» стиль зависимости отделить модули с четкой зависимостью друг от друга.

Для более подробного объяснения смотрите также официальный Introduction to the Spring Framework : Core Container.

Смежные вопросы