В моем приложении я использую - xml и объявление bean на основе аннотаций. Мы также используем JSR330 - @Named и @ Inject.
Проблема заключается в том, что классы, помеченные как @Named, не инициализируются контейнером Spring, даже если тег компонентного сканирования определен в файле xml.
Это работает, если @Named заменяется на @Component, а @Inject заменяется на @ Autowired.
Как я могу заставить его работать с аннотацией @ Named / @ Inject?
Код и Фрагменты конфигурации приведены ниже:
@RestController @EnableWebMvc @RequestMapping( "/Demo" ) public class DemoRestController { @Inject private TestServiceImpl testServiceImpl; .... }
Класс обслуживания следующим образом:
package com.test.service @Named public class TestServiceImpl implements TestService { ... }
и xml Конфигурация выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd "> <context:annotation-config/> <context:component-scan base-package="com.test.service" /> </beans>