весенняя автопроводка не работает, но appcontext разрешает бин - PullRequest
1 голос
/ 07 апреля 2011

У меня следующая проблема с пружиной.У меня есть веб-приложение и проект домена.доменный проект содержит studentService, который должен быть внедрен через автопроводку в класс веб-приложения.Я добавил и в appcontext.xml.

это класс из веб-приложения:

@Component
public class JSONToDomainObjects
{

@Autowired
private StudentService studentService;

private void bindSubmissionValuesToDomainObjects(Integer userKey) throws Exception
{
 Student student =  studentService.getStudentBySlNumber(userKey);
}
}

затем studentservice:

@Service
public class StudentService
{
  ..
}

Поэтому, когда я запускаю свое приложение, я вижу, что studentService имеет значение null,но когда я получаю appcontext и вызываю метод getBean ("studentService"), возвращается экземпляр studentservice.Я использую весну 3.0.5.Кто-нибудь знает, почему происходит сбой автоматической проводки?

ура,

Майкл

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

Почему вы не используете инъекцию зависимостей в своих тестовых классах? Примерно так:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"appcontext.xml"})
public final class JSONToDomainObjectsTests {
    private StudentService service;

    @Autowired
    public void setService(StudentService service) {
        this.service= service;
    }

    @Test
    public void testJSONToDomain() {
        service.foo();
    }
}
1 голос
/ 07 апреля 2011

Используете ли вы <context:annotation-config/> в вашем appcontext.xml?

...