2013-12-02 3 views
0
public class DAOManager { 
     @Autowired 
     private DataSource dataSource; 
..... 

Когда я иду запускать выше, dataSource остается равным нулю.Autowiring DataSource NullPointerException

Как я настроил боб в веб-context.xml:

<!-- Datasource (database) bean --> 
<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="XXXXX" /> 
    <property name="username" value="XXXX" /> 
    <property name="password" value="XXXX" /> 
</bean> 

Я чувствую, что есть что-то мне нужно добавить в свой веб-context.xml добавить класс DAOManager в его юрисдикции .. Я прав с этим? Извините, первый пользователь Spring MVC.

Спасибо за ваше время.

+0

У вас есть определение бина для 'DAOManager'? Spring также должен указать его, чтобы применить автоувеличивание. –

+0

@JimGarrison - Не знаю, нет. Я тоже не уверен, где это сделать. –

+0

Сообщите мне, если ни инъекция, ни '@ Configurable', которые я описываю в моей книге, похоже, что она будет работать. Обычно реорганизация кода немного, так что все введенное является наилучшим долгосрочным подходом, но DAO - это один общий шаблон, где '@ Configurable' действительно полезен (хотя обычно с Active Record, полный класс типа DAOManager) обычно впрыскивается). – chrylis

ответ

0

Вы спрашиваете:

Я чувствую, что есть что-то мне нужно добавить в свой веб-context.xml добавить класс DAOManager в его юрисдикции .. я я прямо с этим?

Вы правы :)

-1

добавить на весеннем XML

<context:component-scan base-package="com.your.package" /> 
+0

Это не будет иметь никакого значения, так как 'DAOManager' - это не какой-либо компонент Spring. – chrylis

+0

<контекст: компонент-сканирование base-package = "com.dauntless" /><- добавлено это, и никакой разницы. –

+0

Я предполагаю, что вы не можете аннотировать DAOManager? – andi

0

Поместите @Repository выше вашего класса DAOManager и посмотреть.

Хотя идеализированная конфигурация, которую вы сделали, кажется прекрасной, и является простым DI, и должна работать нормально, как сейчас.

0

Просто добавьте

<bean id="daoManager" class="DAOManager"> 
     <property name="dataSource" ref="dataSource" /> 
</bean> 
Смежные вопросы