powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Дублирую здесь вопрос по Spring
25 сообщений из 126, страница 1 из 6
Дублирую здесь вопрос по Spring
    #37698307
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде как этот фреймворк более распространен среди Java программистов. Поэтому, хочу спросить:

я почитал и честно говоря не понял в чем глубокий смысл этого фреймворка.

1) IoC - допустим мне надо создать объект. Так я не создаю его напрямую, а непременно заказываю у фабрики. Зачем ?
Если только затем, чтобы не прописывать в коде явно ссылки на определенные классы и не делать такую неразборную конструкцию, то почему для этого недостаточно интерфейсов?

2) Допустим мне надо установить зависимости между объектами. Как бы я действовал: создал бы крупный класс, в котором все вспомогательные объекты создаются и используются по необходимости. А Spring что дает ? Что облегчает? От чего избавляет ?

В целом понимаю что Spring делает, но не понимаю почему именно так и чем это лучше традиционного программирования ?
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698322
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog,

автор1) IoC - допустим мне надо создать объект. Так я не создаю его напрямую, а непременно заказываю у фабрики. Зачем ?
Если только затем, чтобы не прописывать в коде явно ссылки на определенные классы и не делать такую неразборную конструкцию, то почему для этого недостаточно интерфейсов?


Главное что дает нам Spring это слабое связывание компонентов между собой. Также он отвечает за правильное инстанциирование компонентов(выступает контейнером). Один из плюсов это легкость Unit тестирования. Легкость проектирования. Да и впринципе удобно когда можно контролировать создание объектов, тогда можно будет легко логировать действия, выстраивать security layer. Плюсов масса.

авторВ целом понимаю что Spring делает, но не понимаю почему именно так и чем это лучше традиционного программирования ?

С этого момента по подробнее пожалуйста. Что вы под этим понимаете?
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698406
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkС этого момента по подробнее пожалуйста. Что вы под этим понимаете?
как говорил, blazkowicz: "вот и выросло поколение, которое не знает традиционного, без инжекции".
Шутка :)
Было бы несправедливо, промолчать о минусах сабжа:
- оверхед (на небольших проектах спринг не нужен)
- слабое связывание в ООП усложняет тестирование\сопровождение\управление\отладку
- в вебе очень короткий жизненный цикл объектов + многопоточность, поэтому инжекция особо не нужна.
- связи между классами, это тоже БЛ, и _не все_ любят читать контекст БЛ в отдельном XML.

Пример без спринга (традиционная ориентация :) )
1.
Obj = HiberUtilitu.GetSession
2.
valObj = new Obj.ИменованыйКонструктор(параметры

Замечательно, что у нас нет догм и можно писать традиционно и НЕтрадиционно :). Кому как нравится.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698553
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Понеслась.... :)

При чём здесь инжекция? Это раз.
автор- оверхед (на небольших проектах спринг не нужен)

Как измерить?

автор- в вебе очень короткий жизненный цикл объектов + многопоточность, поэтому инжекция особо не нужна.

что для вас веб? а то у меня веб это только морда и спринга там почти нет, кроме доступа к сервисам.


авторслабое связывание в ООП усложняет тестирование\сопровождение\управление\отладку


"А ещё "слабое связывание" ест детей"(из той же темы) Это БРЕД! покажите пример.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698558
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTk,
бери и сам показывай пример. Я показал.
Я линейку принесу.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698561
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkи спринга там почти нет,
и у меня тоже.
Пусть другие спорят.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698564
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

вот и разобрались ))
Надо было сразу с ленейки начать )
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698569
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTk,
конечно.
Тут хелло ворд от ОРМ не дождаться, не то что от преимущества спринг.
Аффтар плюсы и минусы прочёл - пусть выбирает.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698638
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- оверхед (на небольших проектах спринг не нужен)

Spring во много облегчает жизнь на проектах любых размерах. В любом случае, сказать "небольшой" ничего не сказать. Для кого это 5kLOC, для кого-то 500kLOC

Petro123- слабое связывание в ООП усложняет тестирование\сопровождение\управление\отладку

Как раз этому и помогает. Прочитайте про модульное тестирование.

Petro123- в вебе очень короткий жизненный цикл объектов + многопоточность, поэтому инжекция особо не нужна.

Жизненный цикл сервисов - время жизни приложения. Это короткий или длинный?
При чем тут многопоточность, непонятно.

Petro123- связи между классами, это тоже БЛ, и _не все_ любят читать контекст БЛ в отдельном XML.

Для тех, кто не любят в Spring 3.1 сделали возможности удобной конфигурации в классах. Плюс, есть очень красивый проект Spring Integration Scala DSL

В целом - необоснованные заявления, которые не имеют ничего общего с действительностью.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698644
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять болтовня без кода пошла
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698729
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog,

Зачем вообще была придумана Java 2 Enterprise Edition, все эти Application Servers, MOM и Middleware?

Если коротко ответить, то разработчику дают готовую инфраструктуру, готовые сервисы (управление безопасностью, управление потоками, управление транзакциями и т.п.).

Фактически в любом более менее крупном проектом встает вопрос, создавать инфраструктурный код самому или воспользоваться уже готовым решением.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698932
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0Alexsalog,

Зачем вообще была придумана Java 2 Enterprise Edition, все эти Application Servers, MOM и Middleware?

Если коротко ответить, то разработчику дают готовую инфраструктуру, готовые сервисы (управление безопасностью, управление потоками, управление транзакциями и т.п.).

Фактически в любом более менее крупном проектом встает вопрос, создавать инфраструктурный код самому или воспользоваться уже готовым решением.

Это понятно. Особенно про готовое решение. То есть берем фреймворк или среду разработки и сознаем - эта штука сокращает наши трудозатраты потому то и потому. Я хочу осознать что облегчает разработку в случае со Spring. Вариант ответа:

1) Структуру объектов теперь можно описывать декларативно через XML и не заморачиваться с вызовом конструкторов в нужной последовательности и передачей параметров.

2) Сложные объекты не нужно создавать как единое целое - благодаря Spring по прежнему имеем нормальную удобную декомпозицию (для тестирования хорошо), а благодаря, опять же, более понятным, чем простыня кода, декларациям в XML мы эти компоненты можем объединять в некие комплексы, обладающие нужным нам поведением.

Это я так понял. И ключевым тут является, что код. которым можно сделать тоже самое, заменяется XML декларациями. Я правильно понимаю ?
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698942
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog,
да. Всё верно.
Только
авторопять же, более понятным, чем простыня кода, декларациям в XML
это на любителя - попробуй почитать XML вместо кода.
И кода, с учётом XML будет не намного меньше.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698947
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog ,
Корень вашего вопроса лежит не в Спринге, а в непонимании такой вещи, как Inversion of Control . Для вкуривания рекомендую Фаулера - http://www.shmakov.ru/news/text120.html
Можно еще покурить MSDN - http://msdn.microsoft.com/en-us/library/ff648478.aspx
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37698957
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenom,
где попадал?
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37699013
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog,

Spring очень гибкий, можешь использовать XML, можешь не использовать. Честно говоря непонятно в чем вопрос. Попробуй сам ответить на такой вопрос:

"Посмотрел я на .net и честно говоря не понял в чем глубокий смысл этого подхода. В целом понимаю что .net делает, но не понимаю почему именно так и чем это лучше традиционного программирования ?"
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37699042
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0,
ну ты заменил, слово "спринг" на "net" :)
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37699103
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogЭто я так понял. И ключевым тут является, что код. которым можно сделать тоже самое, заменяется XML декларациями. Я правильно понимаю ?
Да. Плюс, поскольку почти все объекты начинают доставаться из контекста спринга, можно делать много разных вкусных вещей вроде AOP.
Дополнительно в Spring уже много чего кроме DI, поэтому пользоваться им просто удобно.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37700432
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvAlexsalogЭто я так понял. И ключевым тут является, что код. которым можно сделать тоже самое, заменяется XML декларациями. Я правильно понимаю ?
Да. Плюс, поскольку почти все объекты начинают доставаться из контекста спринга ...

А как это? Можете привести пример ? Не в коде, а так "на пальцах".
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37700677
SkyNIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexsalog IoC - допустим мне надо создать объект. Так я не создаю его напрямую, а непременно заказываю у фабрики. Зачем ?
Затем что просто создать объект - обычно недостаточно, его еще нужно проинициализировать. И частенько, для этой инициализации еще создаются другие объекты. А для них, еще, и еще. Хотите брать эту ответственность на себя - дело хозяйское. Только при рефакторинге, или иной переделке системы придется и эту часть переделывать
Во-вторых фабрика обычно возвращает интерфейсный объект. Работа же по интерфейсу - уменьшает зависимость от реализации
В-третьих - какие-то объекты могут быть синглтонами, какие-то хранится в пуле. Опять же, вам все равно, что дали с тем и работаете спокойно

AlexsalogДопустим мне надо установить зависимости между объектами. Как бы я действовал: создал бы крупный класс, в котором все вспомогательные объекты создаются и используются по необходимости. А Spring что дает ? Что облегчает? От чего избавляет ?
Вот от этого и избавляет - "создал бы крупный класс, в котором все вспомогательные объекты создаются и используются по необходимости." Это ведь порядочная часть кода. Который требует отладки. А потом - модификации. Оно вам надо?

Описание же связей между объектами в Спринге вообще выносится из языка программирования в конфиги. Все, голова не болит о связях, и правильной их инициализации. Решай задачу ту что нужно, а не пиши инфраструктуру, чтобы начать решать задачу ту что нужно.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37700726
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkyNIN,
связи убрал, инициализацию состояния убрал - что осталось без связей и состояния?
Правильно - процедурное программирование.
Осталось только пример привести.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37700883
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog, скорее всего Вам сейчас Spring и не нужен, раз вы не понимаете его преимуществ(это ни в коем случае не попытка троллинга или попытка обидеть). Тотальное навязывание всяких фреймворков весьма пагубно сказывается на людях, которые только начинают осваивать j2EE. Каждому начинающему просто необходимо попробовать написать j2ee приложение на голых jsp/servletах, и именно тогда вы сможете ощутить что дают спринги и т.п.
Действительно, пока количество сервисов\контроллеров не превышает 10 есть соблазн не заморачиваться, но когда вам надоест создавая каждый новый сервис, тратить значительное время на связывание объектов, управление их жизненным циклом, управлением транзакциями, сложностью unit-тестирования, рефакторингом ранее созданных классов, то вы поймете, что гораздо лучше оставить тонны инфраструктурного кода на плечи Spring, а самим заняться бизнес-логикой.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701048
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

Хороший совет.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701050
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТут хелло ворд от ОРМ не дождаться, не то что от преимущества спринг.

Зачем вы усиленно троллите эту тему, вы должны понимать что сабж особо то и не имеет смысла. Приведу аналогию,
Допустим вы рабочий метрополитена, вам дали задание выкопать ямку 30х30 см и глубиной в 30см. У вас есть два варианта - пойти взять лопату и за полчаса выкопать или пойти к мастеру, обьяснить ему что ручной труд это плохо, попросить его вызвать экскаватор с соседнего участка, подождать его несколько часов и с упоением наблюдать как машина делает работу за вас, причем учитывая ограничения на размер ковша, выкопать ямку 30 на 30 см будет довольно затруднительно. Итак время работы - 3часа, и задача выполнена не идеально, можно сделать вывод что экскаватор говно.


А теперь представим что вам дали задание выкопать траншею 30мх1м и глубиной метр, на основании вывода что экскаватор говно - вы целый день копаете лопатой и к вечеру с успехом отчитываетесь перед мастером о том что вам осталось всего 15 дней чтобы выполнить задачу. Мастер отправляет вас на больничный и звонит на соседний участок, вызывая экскаватор, который за два часа вырывает траншею, ваше мировоззрение опять меняется, и вы приходите к выводу, что каждой задаче - свой инструмент.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701063
SkyNIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

При чем тут процедурное, или еще какое программирование программирование?

Spring - это средство сборки приложения. Это другой уровень абстракции нежели парадигма языка программирования.

Petro123Осталось только пример привести.

По опыту общения с начинающими - малополезно.
Будет много кода, но даже по этому коду преимуществ видно не будет, пока мышление программиста находится на уровне задач
"вывод строки Hello world в консоль"

Кроме того, начинающий программистам очень сложно объяснить, что когда над проектом работает более 5ти человек одновременно, то головняк это уже не только тим-лида или иного менеджера. И многие средства в программировании, например и Spring и появились для уменьшения проблем при коллективной разработке.
Начинающий же программист в команде еще не работал, и чужой многолетний код ему еще не доставался в наследство.

Поэтому скажу так:
Нужно построить дом.
Важна ли информация о строении атома для этой задачи?

Так вот Spring (как и "конкурент" Java EE) это средство проектирования и строительства домов.
Мастеру изготовления кирпичей - и с приплатой не нать.
И производителю линолеума.
И производителю сантехники.
...
Рейтинг: 0 / 0
25 сообщений из 126, страница 1 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Дублирую здесь вопрос по Spring
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]