powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / В чем заключается идея контекстов
10 сообщений из 10, страница 1 из 1
В чем заключается идея контекстов
    #38387915
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните пожалуйста в чем вообще заключается идея контекстов? зачем их много? почему не сделать один файлик и из него просто всю конфигурацию брать?
А то я смотрю - есть куча разных контекстов от xml до web. Я так понимаю ведь когда приложение запущено - всё в едином контексте(ну то есть я например могу написать @Autowire Vasya vasya и не важно в каком он контексте - он сможет автовариться)


Я так понимаю в веб приложении main это web.xml и оттуда все контексты начнут грузиться если это правильно настроить.

А как быть с тестами - вот мне надо съавторить бин, который находится в каком то там контексте - ведь класс с тестом не в курсе существования @Configuration(например) класса. Как тут быть?
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38387943
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расплывчатый вопрос .
Если у тебя спринг - создаешь тестовый testContext.xml - лежит в том же пакете что и твой тестовый класс, контекст для JUnit теста : в нем описываешь требуемые тебе зависимости : сессия, работа с бд итд

обычно это :

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"....

<bean id="sessionFactory" ...

+ в классе теста

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "testContext.xml")
public class Test {

// можно указать так 
    @Autowired
    private SessionFactory sessionFactory;

@Before
    public void setUp() {
        
        // или внедрить так 
        ReflectionTestUtils.setField(testImpl, "sessionFactory", sessionFactory);
        
        
    }
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38387948
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расплывчатый вопрос .
Если у тебя спринг - создаешь тестовый testContext.xml - лежит в том же пакете что и твой тестовый класс, контекст для JUnit теста : в нем описываешь требуемые тебе зависимости : сессия, работа с бд итд

обычно это :

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"....

<bean id="sessionFactory" ...

+ в классе теста

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "testContext.xml")
public class Test {

// можно указать так 
    @Autowired
    private SessionFactory sessionFactory;

@Before
    public void setUp() {
        
        // или внедрить так 
        ReflectionTestUtils.setField(testImpl, "sessionFactory", sessionFactory);
        
        
    }
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38388067
Atum1,

спасибо
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38388074
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень_Любопытный,
забыл перелогинится?
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38388088
Blazkowicz,

да, просто в какой-то момент потерялся акаунт, а потом нашёлся) теперь 2
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38388219
Atum1,
а если бины не в xml, а проаннотрированны как заменить эту строчку?
Код: java
1.
@ContextConfiguration(locations = "testContext.xml")
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38388887
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень_Любопытный,

Чем бины проаннотрированны ?

Если это тест - то проще добавить xml и в нем указать нужные бины.

Поясните задачу - и ответ будет более конкретный !

Обратите внимание на аннотации:
@RunWith(SpringJUnit4ClassRunner.class) — запускает тесты с «запускателем» Спринга
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) — будет создавать спринговский контекст заново для каждого тест метода
@ContextConfiguration(locations = {"classpath:frontend-beans.xml"}) — откуда брать бины

есть еще @ActiveProfiles(profiles = "local") — если вы используете профайлы.

@Autowired заинжектит вам в тест класс ваши бины. Если у вас есть более одного бина реализующего определенный интерфейс, можно его заменить на @Resource(name = "session-operations")



http://www.swiftmind.com/de/2011/06/22/spring-3-1-m2-testing-with-configuration-classes-and-profiles/
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38388890
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://rutracker.org/forum/viewtopic.php?t=4282868

Смотрите главы про Разницу между xml и аннотациями .

Ваши бины будут описаны аннотациями - но тест он синтетический и для его Контектса окружения вы просто опишите все в одном xml
...
Рейтинг: 0 / 0
В чем заключается идея контекстов
    #38388895
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень_ЛюбопытныйAtum1,
а если бины не в xml, а проаннотрированны как заменить эту строчку?
Код: java
1.
@ContextConfiguration(locations = "testContext.xml")



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
package com.bank.service;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
    loader=AnnotationConfigContextLoader.class,
    classes={
        TransferServiceConfig.class,
        StandaloneDataConfig.class,
        JndiDataConfig.class})
@ActiveProfiles("dev")
public class TransferServiceTest {

    @Autowired
    private TransferService transferService;

    @Test
    public void testTransferService() {
        // test the transferService
    }
}



Вы это искали?

http://www.swiftmind.com/de/2011/06/22/spring-3-1-m2-testing-with-configuration-classes-and-profiles/
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / В чем заключается идея контекстов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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