Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > spring как получать бины


Автор: iluvatar 2.9.2010, 22:14
Вот пытаюсь разобраться со спрингом, как и для чего его лучше использовать.
Уперся в стену непонимания и не могу ее побороть. Вопрос настолько туп, что мне даже стыдно спрашивать:

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

например, я делаю вот такой конфиг:
Код

    <beans:bean id="myClassA" class="ru.me.MyClassA">
        <beans:property name="myClassB" ref="myClassB"/>
    </beans:bean>

    <beans:bean id="myClassB" class="ru.me.MyClassB" />

а как мне получить в произвольном месте моего приложение экземпляр myClassA, созданный спрингом?

Объясню шире - хочу я создать синглтон. Я привык описывать его по классике - создавать объект либо при вызове getInstance(), либо в статическом блоке этого класса и класть его в поле instance.
Теперь хочу для этого заюзать спринг. Я описываю бин, описываю какие-то вложенные бины, но как мне обратиться к этому объекту НЕ ИЗ КЛАССА созданного спрингом, а из например стратс-экшена?
т.е. если без спринга я всегда делал так:
Код

MyClassA.getInstance();

а как получить объект, созданный спрингом?

или я чего-то кардинально не понимаю в логике данного фреймворка?

Автор: Старовъръ 2.9.2010, 23:53
Логика в DI в том, что объекты не создают другие объекты, они все собираются из кубиков. В случае, когда у тебя часть приложения не на спринге, ты можешь сделать какую-то точку входа, она будет Одиночкой:
Код

public class SpringFacade {
    private static final ApplicationContext context = new ClassPathApplicationContext("context.xml");

    public static SomeBeanFromContext getSomeBean() {
         return context.getBean(SomeBean.class);
    }
}
Но я уверен, что Spring должен как-то совмещаться со Struts'ом out of box.

Автор: Vasay 3.9.2010, 00:31
Цитата(Старовъръ @  2.9.2010,  23:53 Найти цитируемый пост)
Но я уверен, что Spring должен как-то совмещаться со Struts'ом out of box.



Struts 2 умеет работать со Spring

На сайте есть  Tutorial (староват правда): http://struts.apache.org/2.0.14/docs/struts-2-spring-2-jpa-ajax.html

Автор: iluvatar 6.9.2010, 13:22
Не стал заморачивать с дружбой спринга и стратс, заюзал метод, который подсказал Старовъръ
Может и небольшой костыль, но имхо вполне допустимый

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)