как интегрировать jdbcdaosupport в spring mvc3

#spring #spring-mvc #jdbctemplate

#весна #spring-mvc #jdbctemplate

Вопрос:

Я использую spring mvc3 в своем приложении, а на уровне dao я хочу использовать jdbctemplate, однако я не знаю, куда добавить dao в контроллер?

Например:

 @Controller
public class UserController{
  private UserDao udao;
  public String list(Model model){
    udao=new UserDaoImple();
    List<User> users=udao.list();
    model.addAttrubut('users',users);
    return "list";
  }
}
  

Приведенный выше код — всего лишь пример, я хочу знать, где создать userdao?

Кроме того, поскольку я хочу использовать jdbctemplate, и рекомендуется, чтобы jdbctemplate создавался только один раз для одного источника данных, так как заставить все dao использовать один и тот же jdbctemplate?

Ответ №1:

Вы могли бы использовать Spring IOC (внедрение зависимостей) для внедрения DAO следующим образом

 @Autowired
UserDao userdao;
  

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

для этого вам нужно будет создать одноэлементный класс, в котором есть все экземпляры всех DAO, и при запросе give предоставить экземпляр вашему классу, поэтому вам не нужно создавать экземпляр Dao, просто выполните

 Repo.getUserDaoInstance();
  

На мой взгляд, используйте подход Spring, вы приобретете очень полезный навык, и его намного легче поддерживать, когда вы знаете, что делаете.

Комментарии:

1. Если я использую @Autowired, сколько пользовательских адресов будет создано? а как насчет экземпляра jdbctemplate?

2. Если вы используете AutoWired, Spring создаст только один экземпляр и передаст его классам, которые его запрашивают. Но имейте в виду, что вам нужно настроить некоторые вещи, чтобы это работало, это не только разместить там автоматическое подключение, и все готово.