源碼下載 SSMDemohtml
上一節整合了Mybatis3與Spring4,接下來整合SpringMVC!java
說明:整合SpringMVC必須是在web項目中,因此前期,新建的就是web項目!git
本節所有采用註解式,如要了解其餘的配置方式請查看相關詳細的文章!web
1、新建SpringMVC配置文件applicationContext-mvc.xml:spring
內容以下:sql
<?xml version="1.0" encoding="UTF-8"?>數據庫
<beanswindows
xmlns="http://www.springframework.org/schema/beans"spring-mvc
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"tomcat
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
">
<!-- 使用註解配置 -->
<mvc:annotation-driven />
<!--自動掃描包 -->
<context:component-scan base-package="com.ssm.demo2.controller" />
<!-- ViewResolver 視圖解釋器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property
name="viewClass"
value="org.springframework.web.servlet.view.JstlView"/>
<property
name="prefix"
value="/WEB-INF/jsp/" />
<property
name="suffix"
value=".jsp" />
</bean>
</beans>
2、在WebApp/WEB-INF新建jsp目錄存放jsp頁面!
更改WebApp下index.jsp文件(如沒有,新建)內容以下
3、在web.xml文件中添加spring的相關配置文件:
因springmvc是spring的一相模塊,也通稱爲Spring配置文件!
內容以下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0" >
<!-- Spring應用上下文, 理解層次化的ApplicationContext ,
applicationContext-*.xml這裏用了通配符,
這裏只要與spring整合的文件符合這樣的格式將自動所有加載
-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-*.xml</param-value>
</context-param>
<!-- DispatcherServlet, Spring MVC的核心 -->
<servlet>
<servlet-name>SSMDemo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- DispatcherServlet對應的上下文配置, 默認爲/WEB-INF/$servlet-name$-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SSMDemo</servlet-name>
<!-- mvc-dispatcher攔截全部的請求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--forwarding 跳轉的servlet-->
<servlet>
<servlet-name>forwarding</servlet-name>
<servlet-class>com.spring.mvcdemo.servlet.ForwardingServlet</servlet-class>
</servlet>
<!--配置文件編碼 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--Spring 全局上下文的 監聽,當配置必須有 applicationContext.xml文件,不然報錯 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
4、配置tomcat
在eclipse 中windows->preferences ->Server中runtime environment 添加:
選擇本身本地的安裝版本號
選擇tomcat安裝目錄:
點Finish 完成!
4.2)在server控制面進行添加服務器
前面配置好了,直接就會顯示出,剛配好的tomcat,點完成!
雙擊服務器進行配置
把配置改爲以上圖所示:
4.2)部署項目
在項目名右鍵 run on server
5、開啓tomcat部署,報錯:
這是由於在上一節中 配置sqlSessionFactory時配置文件少加了classpath: !
在applicationContext-dao.xml中把定義sqlSessionFactory中的配置加上classpath:
再部署再報以下錯:
提示缺乏jar包,在pom.xml中添加:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.0.0.Final</version>
</dependency>
而後maven ->update project 一下,再從新部署,ok!
這時顯示index.jsp頁面的內容只說明web環境搭建好,配置文件是ok滴,並不表明與springmvc整合成功,接下來,寫Controller與Service,從數據庫中查詢數據並顯示,來測試整合成功!
6、寫Controller
在com.ssm.demo2.controller新建UserController.java內容以下:
@Controller
@RequestMapping("/user")
publicclass UserController {
@Autowired
UserMapper userMapper;
@RequestMapping("/list")
public ModelAndView userlist() throws Exception{
List<User> users=userMapper.findUserList("王");
ModelAndView mView=new ModelAndView();
mView.addObject("users",users);
mView.setViewName("list");//返回的jsp頁面名稱
returnmView;
}
}
7、在jsp目錄下新建list.jsp頁面,內容:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<h2>SSM 部署成功! </h2>
<p>用戶名:</p>
<h3>${users}</h3>
</body>
</html>
8、從新部署:
在輸入地址:http://localhost:8080/ssm_demo2/user/list
結果以下:
查詢與顯示的結果是同樣ok!
9、寫Service
上面在Controller裏直接操做 mapper,這是不規範的,如今在中間加上Service層
在com.ssm.demo2.service中新建UserService.java接口層
publicinterface UserService {
public List<User>findUser(String name) throws Exception;
}
9.1)新建實現類的包名com.ssm.demo2.service.impl,
並寫實現類UserServiceImpl.java
@Service
publicclass UserServiceImpl implements UserService{
@Autowired
UserMapper userMapper; //spring框架配置了註解,自動注入
@Override
public List<User> findUser(String name) throws Exception {
// TODO Auto-generated method stub
List<User> users=userMapper.findUserList(name);
returnusers;
}
}
再把UserController.java改爲以下:
@Controller
@RequestMapping("/user")
publicclass UserController {
/*@Autowired
UserMapper userMapper;*/
@Autowired
UserServiceImpl userServie;
@RequestMapping("/list")
public ModelAndView userlist() throws Exception{
// List<User> users=userMapper.findUserList("王");
List<User> users=userServie.findUser("劉");
ModelAndView mView=new ModelAndView();
mView.addObject("users",users);
mView.setViewName("list");//返回的jsp頁面名稱
returnmView;
}
}
再從新佈署:報以下錯:
提示在UserController.java出錯,日後再看,顯示以下:
說沒法注入字段,這說明spring註解配置的無效,根據配置的分類applicationContext-dao.xml是配置管理數據庫及spring框架配置的,
applicationContext-mvc.xml是配置SpringMVC模塊相關的:
打開applicationContext-dao.xml查看註解配置,發現包名寫錯:
這是Spring註解,這裏包應該是根包名,而不是配置mvc註解的包名,
改爲 com.ssm.demo2,再從新部署:顯示
顯示結果爲空:能夠自行把日誌打印的SQl語句 運行,驗證結果,的確爲空!
部署ok!
但時細心的話,會發如今啓動Tomcat有報錯一條錯誤:
因太快,沒有截圖上來,錯誤 以下:
提示在 spring配置文件的 xsi:schemaLocation= 中必須是偶數uri
去掉最後spring-dwr-3.0.xsd這條uri,便可;
注:在配置這些uri時,後面最好不要加上版本號信息,讓系統自動適配版本號!減小因版本號不配而報錯!
此時,Mybatis3與Spring4與SpringMVC整合成功!
源碼下載 SSMDemo