UserDao является пустым, я соединяю боб проводом неправильно и нуждаюсь в помощи

Мой homecontroller сделал, чтобы UserService возразил, что это соединено проводом с помощью пружины правильно (он представляет индексную страницу очень хорошо с помощью метода никакой UserService).

Теперь я устанавливаю, в спящем режиме, так в UserService я сделал, чтобы UserDao возразил, что я пытаюсь соединить пружину использования проводом.

@Service
public class UserServiceImpl implements UserService{

    UserDao userDao;

    public String sayHello() {

        return "hello from user service impl part 2";

    }

    public String getTestUser() {





        return userDao.getById(1L).getUsername();

    }

}

Таким образом, мой HomeController называл 'sayHello' метод, и он хорошо работал как, я сказал.

@Controller
public class HomeController {

    @Autowired
    private UserService userService;




    @RequestMapping("/")
    public ModelAndView Index() {



        ModelAndView mav = new ModelAndView();

        mav.setViewName("index");
        mav.addObject("message", userService.sayHello());

        mav.addObject("username", userService.getTestUser());
        //userService.getTestUser();

        return mav;
    }

Вызов к userService.getTestUser () сбои, поскольку UserDao является пустым.

Мой app-config.xml:

<!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--<property name="packagesToScan" value="com.blah.core.db.hibernate"/>  -->
        <property name="configLocation" value="/WEB-INF/classes/hibernate.cfg.xml"/> 
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQLDialect
                hibernate.connection.url=jdbc:mysql://localhost/blah
                hibernate.connection.username=dbuser
                hibernate.connection.password=123
                hibernate.query.substitutions=true 'Y', false 'N'
                hibernate.cache.use_query_cache=true
                hibernate.cache.use_second_level_cache=true
                hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
                hibernate.jdbc.batch_size=0
            </value>
        </property>
    </bean>

    <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->


     <bean id="userDao" class="com.blah.core.db.hibernate.UserDaoImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

Почему мой UserDao является пустым? Я должен делать что-то не так с проводным соединением?

Кроме того, если я некомментирую name=packagesToScan строку, я должен действительно определить боб для каждого Дао как, я сделал с UserDao? sessionFactory будет соединен проводом так или иначе?

1
задан Blankman 18 July 2010 в 04:20
поделиться

2 ответа

Добавить аннотацию @AutoWired к userDao.

@Service
public class UserServiceImpl implements UserService{

    @AutoWired
    UserDao userDao;

    ...
}

И убедитесь, что вы настроили для сканирования пакетов, которые используются вашими @Service и @Controller . дюйм

2
ответ дан 2 September 2019 в 22:57
поделиться

Как упоминалось Кроком, ваш UserDao неправильно "подключен" к вашему UserService. Вы даже пробовали его предложение?

0
ответ дан 2 September 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: