1. 程式人生 > >整合SpringMVC框架和Spring框架

整合SpringMVC框架和Spring框架

-------------------------siwuxie095

整合 SpringMVC 框架和 Spring 框架

1、匯入相關jar 包(共 17 個)

1)匯入Spring 的核心 jar 包和日誌相關的 jar 包(6 個)

Commons Logging下載連結:

LOG4J 下載連結:

2)匯入Spring 的 AOP 開發的 jar 包(4 個)

AOP Alliance下載連結:

AspectJ Weaver下載連結:

3)匯入Spring 的JDBC 開發的 jar 包(2 個)

4)匯入Spring 整合 Web 專案的 jar 包(1 個)

5)匯入SpringMVC 的 jar 包(1 個)

6)匯入SpringMVC 中使用 JSON 所需的 jar 包(3 個)

Jackson Core 下載連結:

Jackson Annotations 下載連結:

Jackson Databind 下載連結:

2、測試

1)編寫一個Controller 類

UserController.java:

package com.siwuxie095.controller;

import org.springframework.http.HttpStatus;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseStatus;

import com.siwuxie095.service.UserService;

// Controller

@Controller

@RequestMapping("/user")

public class UserController {

private UserService userService;

publicvoid setUserService(UserService userService) {

this.userService = userService;

}

/**

* 注意:這裡沒有返回值,僅僅返回了一個 HTTP 狀態碼 200

*/

@RequestMapping("/show")

@ResponseStatus(HttpStatus.OK)

publicvoid show() {

System.out.println("UserController 呼叫了 " + userService.show());

}

}

2)編寫一個Service 類

UserService.java:

package com.siwuxie095.service;

// Service

public class UserService {

public String show(){

return"UserService";

}

}

3)在Spring 核心配置檔案中進行配置

applicationContext.xml:

4)在SpringMVC 核心配置檔案中進行配置

dispatcher-servlet.xml:

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="

<!-- 啟用註解驅動 -->

<mvc:annotation-driven/>

<!--

配置 Controller(必須,即必須進行配置)

class 為自定義 Controller 類的完全限定名,這裡通過 Controller

類中的 @RequestMapping 註解來設定訪問路徑

使用純註解時,另一種配置 Controller 的方式:配置掃描包

<context:component-scan base-package="com.siwuxie095.controller" />

-->

<beanid="userController"class="com.siwuxie095.controller.UserController">

<propertyname="userService"ref="userService"/>

</bean>

<!-- 配置 ViewResolver(必須,即必須進行配置) -->

<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">

<!--

配置檢視解析的字首 prefix 和字尾 suffix

1)字首:如果在 WebContent 目錄下,則為 /,如果在 WEB-INF 目錄下,則為 /WEB-INF/

2)字尾:一般為 JSP 檔案,所以為 .jsp

例如:prefix="/"suffix=".jsp"viewname="test",則:"/test.jsp"

-->

<propertyname="prefix"value="/"/>

<propertyname="suffix"value=".jsp"/>

</bean>

</beans>

5)在部署描述檔案中進行配置

web.xml:

<?xmlversion="1.0"encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"

<display-name>TestSpringMVCAndSpring</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

<!-- 配置 Spring 的監聽器 ContextLoaderListener -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!-- 配置 Spring 核心配置檔案的位置(路徑) -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<!-- 配置 SpringMVC 的核心分發器 -->

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!-- 配置 SpringMVC 核心配置檔案的位置(路徑) -->

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:dispatcher-servlet.xml</param-value>

</init-param>

<!-- 自動載入:隨 Tomcat 容器啟動,完成初始化 -->

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

</web-app>

6)訪問路徑

http://localhost:8080/工程名/user/show.do

附:

另一種配置方式,即純註解,對以上「測試」做如下修改:

1)在Controller 類中:

1)在 userService 屬性上加 @Autowired 註解

2)刪掉userService 屬性的 setter 方法

2)在Service 類中:

在類上加 @Service 註解

3)在Spring 核心配置檔案中:

1)刪掉 userService 的 Bean

2)加上<context:component-scan base-package="com.siwuxie095.service"/>

4) 在 SpringMVC 核心配置檔案中:

1)刪掉 userController 的 Bean

2)加上<context:component-scan base-package="com.siwuxie095.controller"/>

綜合(3)(4):刪掉兩個Bean,在 SpringMVC 核心配置檔案中

加上如下內容:

<context:component-scan base-package="com.siwuxie095"/>

【made by siwuxie095】