Spring @Autowired не работает

У меня проблемы с аннотацией autowire. Мое приложение выглядит так:

Вот контроллер:

@Controller
public class MyController {
    @Autowired
    @Qualifier("someService")
    private SomeService someService;

    ....
}

Это уровень службы:

public interface SomeService {
    ...
}

@Service
public class SomeServiceImpl implements SomeService{    
    @Autowired
    @Qualifier("myDAO")
    private MyDAO myDAO;

    ....
}

И уровень DAO:

public interface MyDAO{
    ....        
}

@Repository
public class JDBCDAOImpl implements MyDAO {    
    @Autowired
    @Qualifier("dataSource")
    private DataSource dataSource;    
    ....
}

Это файл app-service.xml:

....
<bean id="propertyConfigurer"
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
      p:location="/WEB-INF/jdbc.properties" />

<bean id="dataSource"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource"
      p:driverClassName="${jdbc.driverClassName}"
      p:url="${jdbc.url}"
      p:username="${jdbc.username}"
      p:password="${jdbc.password}"/>

<bean id="SomeService" class="com.service.SomeServiceImpl" />    
<bean id="myDAO" class="com.db.JDBCDAOImpl" />    

Итак ... Когда я Я запускаю веб-приложение MyController Autowires правильно (поле someService правильно введено объектом класса SomeServiceImpl), но myDAO feild of someService имеет нулевое значение (не введено должным образом).

Не могли бы вы помочь мне найти проблему?

PS Это интересно, но когда я меняю «идентификатор bean-компонента» с myDAO на какой-то другой (например, myDAO2), система выдает мне ошибку, что внедрение не может быть выполнено, потому что bean-компонент myDAO не существует. Итак, Spring сделали укол, но где он? И почему это? Я смотрю на различные сайты, и они предлагают предложения, но не полные, я имею в виду, например, объявление yylval и yytext ...

Привет, я не понимаю, как получить char *, когда я читаю конкретный токен ... Я просматриваю различные сайты, и они дают предложения, но не полные, я имею в виду, например, отсутствует объявление yylval и yytext или как преобразовать типы и т. Д.

Что нужно в файле .l? Зачем нужен файл .y?

Что у меня

в файле .l:

{WORD}      { yylval = strdup(yytext);return T_ValidWord;}

в файле .y:

%union{
  char *str;
}

%token<str> T_ValidWord

%%

element:
T_OpenTag T_ValidWord ele1 {printf("%s", $2);}
; 

Ошибка:

xml.lex: In function ‘yylex’:
xml.lex:34: error: incompatible types when assigning to type ‘YYSTYPE’ from type ‘char *’

Другое, что меня смутило: В некоторых местах я вижу

yylval->something = yytext
yylval.something = yytext
yylval = yytext

В руководстве по bison говорится, что yylval - это макрос, я понимаю, что макрос - это текст, замененный другим текстом, но в этой ситуации я действительно этого не понимаю.

5
задан mjsr 26 November 2010 в 19:14
поделиться