Spring mvc无xml配置及利用JdbcTemplate访问数据库


声明:本文转载自https://my.oschina.net/u/2245781/blog/1575561,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

项目结构

一、新建动态web项目取名HelloSpringMVC

二、/WebContent/WEB-INF/lib下导入必要依赖库

commons-collections4-4.1.jar、commons-dbcp2-2.1.1.jar、commons-logging-1.2.jar
commons-pool2-2.4.3.jar、jstl-1.2.jar、mybatis-3.4.5.jar、mybatis-spring-1.3.1.jar
mysql-connector-java-5.1.44-bin.jar、spring-aop-4.3.12.RELEASE.jar
spring-aspects-4.3.12.RELEASE.jar、spring-beans-4.3.12.RELEASE.jar
spring-context-4.3.12.RELEASE.jar、spring-context-support-4.3.12.RELEASE.jar
spring-core-4.3.12.RELEASE.jar、spring-expression-4.3.12.RELEASE.jar
spring-instrument-4.3.12.RELEASE.jar、spring-instrument-tomcat-4.3.12.RELEASE.jar
spring-jdbc-4.3.12.RELEASE.jar、spring-jms-4.3.12.RELEASE.jar
spring-messaging-4.3.12.RELEASE.jar、spring-orm-4.3.12.RELEASE.jar
spring-oxm-4.3.12.RELEASE.jar、spring-test-4.3.12.RELEASE.jar、spring-tx-4.3.12.RELEASE.jar
spring-web-4.3.12.RELEASE.jar、spring-webmvc-4.3.12.RELEASE.jar
spring-webmvc-portlet-4.3.12.RELEASE.jar、spring-websocket-4.3.12.RELEASE.jar

三、WebInitializer(相当于web.xml)

package com.hello.annotation;  import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration;  import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet;  public class WebInitializer implements WebApplicationInitializer {  	@Override 	public void onStartup(ServletContext servletContext) throws ServletException { 		// TODO 自动生成的方法存根         AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();         ctx.register(AnnoConfig.class);         ctx.setServletContext(servletContext);//新建WebApplicationContext,注册配置类,并将其和当前的servletContext关联         //ctx.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml");  	//注册sprigmvc的DispatcherServlet        ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher",new DispatcherServlet(ctx));        servlet.addMapping("/");        servlet.setLoadOnStartup(1); 	}  } 

四、AnnoConfig(相当于application.xml)这里把数据源也配置了

package com.hello.annotation;  import javax.sql.DataSource;  import org.apache.commons.dbcp2.BasicDataSource; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView;  @Configuration @EnableWebMvc @ComponentScan("com.hello.*") public class AnnoConfig { 	@Bean 	public ViewResolver viewResolver() { 		InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 		viewResolver.setViewClass(JstlView.class); 		viewResolver.setPrefix("/WEB-INF/views/"); 		viewResolver.setSuffix(".jsp");  		return viewResolver; 	}      @Bean(name = "primaryDataSource") 	public BasicDataSource dataSource() { 		BasicDataSource ds = new BasicDataSource(); 		ds.setDriverClassName("com.mysql.jdbc.Driver"); 		ds.setUrl("jdbc:mysql://localhost:3306/test2?useSSL=false"); 		ds.setUsername("your-user"); 		ds.setPassword("your-passwd"); 		return ds; 	}          @Bean(name = "primaryJdbcTemplate")     public JdbcTemplate primaryJdbcTemplate(             @Qualifier("primaryDataSource") DataSource dataSource) {         return new JdbcTemplate(dataSource);     }  } 

五、控制类

package com.hello.controller;  import javax.servlet.http.HttpSession;  import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping;  @Controller public class HelloWorldController { 	@RequestMapping("/") 	public String sayHello(ModelMap model) { 		model.addAttribute("greeting", "你好! Spring 4 MVC"); 		return "welcome"; 	} 	 	@RequestMapping("/login") 	public String login(HttpSession session, String username, String password) throws Exception { 		// 调用 service 层验证登录 		// ...  		// 模拟登录成功 		session.setAttribute("username", username); 		return "redirect:/u/list"; 	} } 

六、视图welcome.jsp(放在WEB-INF/views/下)

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>在此处插入标题</title> </head> <body> 	Greeting : ${greeting} </body> </html>

七、运行

八、JdbcTemplate访问数据库部分

IUser、User、UserRowMapper、UserRepository等类和接口完全参照SpringBoot的dao层、JdbcTemplate多数据源访问实例。这里只把包com.yiibai改为com.hello。

增加控制类Ucontroller也是参考SpringBoot的dao层、JdbcTemplate多数据源访问实例。但修改较大(用了ModelAndView),具体内容如下:

package com.hello.controller;  import java.util.List;  import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView;  import com.hello.mybatis.models.User; import com.hello.mybatis.repositories.UserRepository;  @Controller @RequestMapping("/u") public class Ucontroller { 	@Autowired 	@Qualifier("primaryJdbcTemplate") 	protected JdbcTemplate primaryJdbcTemplate; 	     @Autowired     private UserRepository userRepository;   	@RequestMapping(value = "/list", method = {RequestMethod.POST, RequestMethod.GET}) 	public ModelAndView getUsers() { 		List<User> ulist=userRepository.findAll();  		ModelAndView modelAndView = new ModelAndView("userslist");//转到/WEB-INF/views/userslist.jsp 		//modelAndView.setViewName("userslist"); 		modelAndView.addObject("userslist", ulist); 		return modelAndView; 	} }  

这里要注意应该引入的是: org.springframework.web.servlet.ModelAndView;
而不是 org.springframework.web.portlet.ModelAndView,否则会出错。

视图userslist.jsp(也在WEB-INF/views/下)

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <%@ page language="java" contentType="text/html; charset=UTF-8" 	pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <title>在此处插入标题</title> </head> <body> 	<table> 		<tr> 			<th>编号</th> 			<th>名字</th> 			<th>部门</th> 			<th>电话</th> 		</tr> 		<c:forEach items="${userslist}" var="users"> 			<tr> 				<td>${users.id}</td> 				<td>${users.name}</td> 				<td>${users.dept}</td> 				<td>${users.phone}</td> 			</tr> 		</c:forEach> 	</table> </body> </html>

运行:

http://localhost:8080/HelloSpringMVC/login

HelloWorldController中"/login"重定向到"/u/list",然后调用Ucontroller类中public ModelAndView getUsers()。

 

项目代码点击:下载 

参考:

Spring+SpringMVC+hibernate整合开发

Spring MVC 无XML配置入门示例 

SpringMVC基于代码的配置方式(零配置,无web.xml)

无xml文件的springMVC

 

 

本文发表于2017年11月19日 10:33
(c)注:本文转载自https://my.oschina.net/u/2245781/blog/1575561,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2518 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1