Мне было поручено обновить старый проект, который я не написал.
Проект основан на Spring MVC и имеет более старую конфигурацию Spring Controller, с которой я не знаком.
Контроллеры имеют следующие конфигурации бинов
<bean id="controllerName" class="the.project.controller.class">
<property name"serviceName">
<ref bean="serviceName">
</property>
<property name"successView">
<value>viewName</value>
</property>
</bean>
где serviceName ссылается на класс, помеченный @Service
следующим образом
@Service(value=serviceName)
Это правильная замена для конфигурации xml?
@Autowired
@Qualifier("serviceName")
ServiceNameImpl serviceName
спасибо
изменить здесь организацию класса serviceName и интерфейс
public interface ServiceName {
// methods omitted
}
@Service(value="serviceName")
public class ServiceNameImpl implments ServiceName {
//methods omitted
}
Аннотация @Resource недоступна для меня (Spring 3.0.7), и Autowire, как указано выше, завершается ошибкой (так как кажется, что тип не соответствует ожидаемому, как описано ниже)
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching beans of type [the.project.ServiceNameImpl] found for dependency
Учитывая правки, что я здесь делаю неправильно (извиняюсь за то, что пропустил эту информацию)?
В конце мне нужно иметь доступ к методам интерфейса и его реализации
например
serviceName.doSomething(someVar);