2013-07-29 3 views
1

Я разрабатываю простое веб-приложение, используя Spring Framework. Когда я добавляю Spring framework в мой путь к классу, я вижу, что у него много кусков, которые я никогда не использую (например: spring-aop-3.2.3.RELEASE.jar).Должен ли я исключать банки Spring Framework, которые не требуются?

Полезно ли хранить целостную структуру или удалить неиспользованные банки?

+2

Как вы управляете своими зависимостями? Вы используете Maven? –

+1

Если вы не используете классы, которые предоставляет банку, вы можете безопасно удалить их. Нет проблем. – Bart

+4

@Bart Нет, это не так. Могут существовать транзитивные зависимости. –

ответ

4

Если вам нужно удалить неиспользованные банки, лучший способ - использовать какой-либо инструмент управления зависимостями, такой как Ivy или Maven, и позволить инструменту решить, какие требуемые зависимости. В противном случае не будет видно, что действительно не используется или нет, пока вы что-то не сломаете. Например, если вы используете декларативные транзакции, то удаление банка AOP приведет к поломке, поскольку AOP используется для реализации этой функции.

Если вы предпочитаете не использовать управление зависимостями, лучше оставить все неповрежденным.

Есть некоторые случаи, когда вы хотите удалить/исключить банки. Одним из примеров является замещение общего доступа с помощью slf4j. Другим примером является исключение зависимостей log4j, которые перетаскиваются из-за некоторых приложений, которые упакованы в log4j, но вы знаете, что никогда не будете использовать. Так что это нормально, когда у вас есть конкретная цель, и вы знаете, что нужно сделать. Но удаление вещей, потому что вы никогда не используете их напрямую, кажется чревато опасностью.

+2

Абсолютно. Используйте автоматическое управление зависимостями. Если нет, будьте особенно осторожны, прежде чем удалять что-либо. Spring имеет множество функциональных возможностей, которые внезапно появляются, если определенные классы находятся в пути к классам. –

+0

Спасибо за предложение. – rohith

+0

Да, но даже если что-то объявлено как зависимость, это не значит, что вы на самом деле его используете. –

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