powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Дублирую здесь вопрос по Spring
25 сообщений из 126, страница 3 из 6
Дублирую здесь вопрос по Spring
    #37701325
SkyNIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123- с 3-ей стороны должна быть хорошая поддержка IDE и рантайм.
SpringSource Tool Suite - не идеален, но много уже умеет.

Другое направление развития средств работы с этим всем хозяйством - Spring Roo
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701328
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkyNINPetro123- с 3-ей стороны должна быть хорошая поддержка IDE и рантайм.
SpringSource Tool Suite - не идеален, но много уже умеет.

Другое направление развития средств работы с этим всем хозяйством - Spring Roo

Spring Roo - это немного не в степь, все таки пока что это кодогенератор, весьма сырой и мало кем используемый по этой причине в коммерческом программировании ;)
StS - кстати бодрый инструмент, но меня по работе подсадили на идею..теперь слезать не охота ;)
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701394
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

конфигурируем объект для работы с MongoDB

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    <bean id="mongo" class="com.mongodb.Mongo">
        <constructor-arg name="host" value="127.0.0.1"/>
    </bean>

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongo"/>
        <constructor-arg name="databaseName" value="berkley_db"/>
        <constructor-arg ref="userCredentials"/>
    </bean>

    <bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
        <constructor-arg name="username" value="berkley_user"/>
        <constructor-arg name="password" value="1111111"/>
    </bean>



Используем в классе DAO

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@Repository
public class CompanyDAO {

    @Autowired
    MongoOperations mongoOperations;

    public void create(Company company) {
        if (valid(company))
           mongoOperations.insert(company);
    }
}



Вот такой вот Хеллоу ворлд в стиле IoC :)
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701405
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTk,
замечательно.
Если не лень, напиши это без спринга (НЕ для холиваров).
Или я попозже попробую.
спс.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701411
SkyNIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Да, в целом согласен.

Добавлю только
Как раз вынесение описания связей и инициализации из кода в некий DSL и дает отличный шанс создать инструменты в виде StS, или плагинов к Idea.
Анализатор инфраструктурного Java кода проекта без Spring - куда сложней даже в теории.

Тем же путем идет идут и в Eclipse RCP - для OSGi контейнера Equinox описание можно и рекомендуется задавать во внешних конфигах, которые уже неплохо конфигурируются плагинами же. Причем оставлена и полная динамика - все можно зашить и в Java код.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701417
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Будет билдер и сеттер для поля вместо аннотации @Autowired :)
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701427
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkPetro123,
Будет билдер и сеттер для поля вместо аннотации @Autowired :)
у меня классов без конструкторов и параметров не бывает.
Если ты об этом.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701454
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Пример в студию :)
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701667
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут уже правильную аналогию приводили с совочком и экскаватором. Обсуждать архитектурные вопросы на уровне приложений в 5 строк неправильно. Да еще строки при этом сравнивать.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701679
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkПример в студию :)
Да нет проблем :)
Пример 1
====================
Десктоп, Класс SavePosWin сохраняет положение окна owner'a.
Инициализация после создания всех контролов.
Сохранение положения окна при закрытии окна в деструкторе.
Параметры: имя класса через this, True - сохранить, False -
прочитать и установить через this

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
class WinForm {

  конструктор{
  инит всех контролов
  ..............
  SavePosWin.SaveLoadPosition(this_WinControl, True);
  ...........
  }
}


======================
не совсем конструктор, но примера 2-4 разберём.... для 1 класса 2-ой четверти
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701762
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

И как в этом примере, например, получить доступ к сервису, который работает с парочкой DAO? При этом DAO, в зависимости от окружение размещения могут быть разными.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701764
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkPetro123,

конфигурируем объект для работы с MongoDB

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    <bean id="mongo" class="com.mongodb.Mongo">
        <constructor-arg name="host" value="127.0.0.1"/>
    </bean>

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongo"/>
        <constructor-arg name="databaseName" value="berkley_db"/>
        <constructor-arg ref="userCredentials"/>
    </bean>

    <bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
        <constructor-arg name="username" value="berkley_user"/>
        <constructor-arg name="password" value="1111111"/>
    </bean>




Используем в классе DAO

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@Repository
public class CompanyDAO {

    @Autowired
    MongoOperations mongoOperations;

    public void create(Company company) {
        if (valid(company))
           mongoOperations.insert(company);
    }
}




Вот такой вот Хеллоу ворлд в стиле IoC :)
вот так выглядит без спринг:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=925025&msg=12223783
Код: java
1.
2.
3.
4.
5.
6.
7.
    public boolean insert(Person person) throws Exception {
        if (person == null) {
            throw new Exception("empty person");
        }
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.save(person);
    }
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701768
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример 2
====================
Десктоп, Класс FormEditRowGrid модальное окно-форма редактирования
выделенной строки грида, по событию - 2 клика на строке.
Параметры: this для обратного вызова родителя-каллбэк,
CollectionPosition - коллекция объектов с маркером на текущем объекте-строке
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
class WinFormGrid {

  GridMouseDoubleClick{
  formEditRowGrid = new FormEditRowGrid(this, CollectionPosition);
  formEditRowGrid.ShowModal;
  formEditRowGrid = Nil;
  }
}


======================
вот такие ВИ\Use case\прецеденты у программиста.
Уж какие есть :)
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701883
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Код: java
1.
2.
3.
4.
5.
6.
7.
 public boolean insert(Person person) throws Exception {
        if (person == null) {
            throw new Exception("empty person");
        }
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.save(person);
    }



Собственно чем он отличается от моего примера? В том что нет аннотаций что ли? Вы берете у фабрики сессию. А разве спринг не тоже самое вам дает? Вы ведь не настраиваете сессию? Подходов тут правильных не много, а спринг просто позволяет это делать удобнее. Но результат будет один и тот же, контейнер или фабрика для нас будет создавть объекты в соответствии с нашими желаниями.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
class WinForm {

  конструктор{
  инит всех контролов
  ..............
  SavePosWin.SaveLoadPosition(this_WinControl, True);
  ...........
  }
}



А что здесь ты пытаешся показать? я не догоняю сорри...
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701940
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTk,
1. Отличается тем что написан без спринга и нет ненужного XML.
Я хотел (вместе с автором) паттерн использования технологии (как напр. на хабре). Без выкриков Windows Must die.

2. Результат почти одинаков, т.к. в большинстве фирм таких утилит-фабрик навалом. И нет нужды на каждый проект писать XML-конфиг связей классов.

3. В Примере 1,2, я ответил ровно на твой вопрос - у меня большинство классов с конструктором и параметрами. Как чёрные ящики с одним входом поведением и выходом.
Поэтому проинжектить не просто.

ЗЫ. Примеры преимуществ IoC\DI несомненно есть .... для _части_ проектов.
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701948
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=925025&msg=12223783


Т.е. вот такой копипаст в десятке-сотне методов это норм.?
Код: java
1.
2.
3.
4.
        Session session = HibernateUtil.getSessionFactory().openSession();
        ...
        session.flush();
        session.close();


При этом всё прибито к единственной session factory и чтобы перейти на работу, например, с двумя базами нужно весь код перелопатить?
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701954
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЗЫ. Примеры преимуществ IoC\DI несомненно есть .... для _части_ проектов.

Проблема управления зависимости актуальная для подавляющего большинства проектов размером больше 3х классов.
Ни о какой "_части_" речь идти не может. То что она без DI решается через задний проход, ещё не значит что DI не нужен.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701958
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
однозначно не ответить:
- я это убрал БЕЗ спринга, обычным программированием (это пример прошлого века).
- если разница в 1-2 строки кода "в коде" и избыточный XML, то я выберу программирование, а не конфигуразм.
Т.е. пока не вижу причины.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701962
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczбольшинства проектов размером больше 3х классов.
- управления в рантайме? Зачем?
- помнится VoDA спрашивал - как обозревать конфиги на 3000 строк.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701966
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro1231. Отличается тем что написан без спринга и нет ненужного XML.

Ты как-то непоследователен в теме. Ты против поголовного использования Spring-XML или DI? Для DI существуют и другие легковесные фреймверке. Все инъекции можно и на pure Java организовать.

Petro1232. Результат почти одинаков, т.к. в большинстве фирм таких утилит-фабрик навалом.

Всё такое наследие лишь жалкое подобие того что уже есть в Apache Commons и других распространенных либах. На других платформах все хранят такие наработки. На Java это нафиг никому не нужно. Opensource решения намного более качественные и перекрывают функциональность с лихвой. Поэтому разработчики концентрируются на написании бизнес-логики, которая между проектами не переносится.

Petro1233. В Примере 1,2, я ответил ровно на твой вопрос - у меня большинство классов с конструктором и параметрами. Как чёрные ящики с одним входом поведением и выходом.

Если зависимостями даже через конструктор нельзя управлять, то соовтетственно и полиморфизм стремится у нулю, как в случае с твоими HibernateUtil
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701970
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- я это убрал БЕЗ спринга, обычным программированием (это пример прошлого века).
- если разница в 1-2 строки кода "в коде" и избыточный XML, то я выберу программирование, а не конфигуразм.

Это всё к вопросу, тебе лично Spring XML не угоден, или DI?
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701985
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- управления в рантайме? Зачем?

Зависимости в любом случае создаются в рантайме. Поэтому я вопроса не понял. Но они либо создаются извне классов - тем кто отвечает за управление зависимостями. Либо управление зависимостями размазано по всему проекту. Соответсвенно элементами проекта уже сложнее манипулировать, отдельно. Т.к. классы, зачастую, привязаны к конкретным экземплярам зависимостей.
Можно провести аналогию с констркутором LEGO - элементы можно скреплять как угодно. В случае если зависимостями классы управляют сами, то мы имеем несколько монолитных блоков. И чтобы их скрепить в альтернативном варианте, нужно плотно поработать напильником.


Petro123- помнится VoDA спрашивал - как обозревать конфиги на 3000 строк.
Это к теме отношения не имеет. Точно так же как и классы на 20000 строк. (Есть у нас в одном проекте такой)
Spring XML чудесно поддерживает импорты.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37701997
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
- я против и XML и DI поголовного. Поголовное всё плохо. Молиться не люблю, что и написал "забыл ник".
Кстати, логгер тоже инжектить надо?
- я тут читал, что у большинства свои наработки. Может врут.
- управлять кодом в рантайме это круто. Рукой подать до скриптов пользователя и DSL.
Я предпочитаю ТЗ и управлять БЛ.
Хотя твой сабж имеет место быть. Не спорю.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37702004
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЗависимости в любом случае создаются в рантайме
нет. Это модель. Она статична либо в XML либо в коде.
Создаётся в рантайме при загрузке (метамодель), а ОПИСЫВАЕТСЯ в статике-дезигн.
...
Рейтинг: 0 / 0
Дублирую здесь вопрос по Spring
    #37702014
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczМожно провести аналогию с констркутором LEGO - элементы можно скреплять как угодно. В случае если зависимостями классы управляют сами, то мы имеем несколько монолитных блоков. И чтобы их скрепить в альтернативном варианте, нужно плотно поработать напильником.
конечно.
Можно в ИС бухгалтерия для нового отчёта прислать Jar\dll\...
А можно новый протестированный ОтчётФорма12_DI_IoC.XML.
Короче комбайн для заказчика. Такие тоже есть. Только такие ERP вряд ли имеют отношение к сабжу. imho
...
Рейтинг: 0 / 0
25 сообщений из 126, страница 3 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Дублирую здесь вопрос по Spring
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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