#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 создаст только один экземпляр и передаст его классам, которые его запрашивают. Но имейте в виду, что вам нужно настроить некоторые вещи, чтобы это работало, это не только разместить там автоматическое подключение, и все готово.