您的位置:首页 > 编程语言 > Java开发

Spring、SpringMVC、SpringData + JPA 整合详解

2017-11-01 14:00 701 查看
之前详细讲解过了 JPA 和 SpringData,包括 Spring 和 SpringMVC 也进行了详细的讲述。很早就想来一个整合了,因为事情比较多,所以就一直拖着。

那么现在就来说说 Spring + SpringMVC + SpringData + JPA(下文中简写为 SSSP) 的整合,SSSP 的整合之后再来写一个  CRUD 的小案例,LZ 不打算把增删改查都来一遍了,只介绍一个查询所有员工信息,然后分页显示即可。大家可以对比在 JavaWeb 的过程中写的分页查询,看一看是否简单的许多。下面进行详细的介绍~


一、加入 Spring

1. 首先当然要新建一个动态的 WEB 的工程了,取名 sssp

2. 加入 Spring 的 jar 包,观察这些 jar 包,大家可以发现其中既包含了 Spring 的 jar 包,也包含了 SpringMVC 的 jar 包



3. web.xml 中配置启动 Spring IOC 的 ContextLoaderListener:

1 <!-- 配置启动 Spring IOC 的 Listener -->
2     <context-param>
3         <param-name>contextConfigLocation</param-name>
4         <param-value>classpath:applicationContext.xml</param-value>
5     </context-param>
6
7     <listener>
8         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
9     </listener>


其中 LZ 配置的 Spring 的配置文件在 classpath 下,取名为 applicationContext.xml 

4. 这一步当然就是在类路径下创建 Spring 的配置文件:applicationContext.xml 了,在这里先创建好,稍后进行配置。


二、加入 SpringMVC

1. 首先呢肯定要想到的是先导入 jar 包,这里在加入 Spring 的时候已经导入,前面也已经做了说明。

2. web.xml 中配置 SpringMVC 的 DispatcherServlet

1 <!-- 配置 SpringMVC 的 DispatcherServlet -->
2     <!-- 使用默认的 SpringMVC 的配置文件,为 [servlet-name]-servlet.xml 放到 WEB-INF 目录下 -->
3     <servlet>
4         <servlet-name>springDispatcherServlet</servlet-name>
5         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
6         <load-on-startup>1</load-on-startup>
7     </servlet>
8
9     <servlet-mapping>
10         <servlet-name>springDispatcherServlet</servlet-name>
11         <url-pattern>/</url-pattern>
12     </servlet-mapping>


在这里呢 LZ 删除了一部分配置,我们使用默认的 SpringMVC 的配置文件,这个默认的 SpringMVC 的配置文件的名字为 :springDispatcherServlet-servlet.xml ,需要注意的是,若使用默认的配置文件,文件的位置需要在
WEB-INF 目录下

3. 在 WEB-INF 目录下新建 SpringMVC 的配置文件: springDispatcherServlet-servlet.xml (注意:LZ 的 Eclipse 中是安装了 Spring 插件的,实质上 LZ 使用 Spring 的插件创建了 SpringMVC 的配
b604
置文件,只是文件名不同而已)



4. 然后我们对 SpringMVC 的配置文件 springDispatcherServlet-servlet.xml 进行配置

1)加入命名空间,因为我们在新建配置文件的时候没有加入命名空间,所以先加入 context 和 mvc 的命名空间。那么如何加入呢,当我们打开 SpringMVC 的配置文件后,大家可以看到文件的左下角有一些选项卡(如下面图片所示),大家点击第二个选项 Namespaces,



点开后大家吧 context 和 mvc 选项挑上对勾即可。



2)配置自动扫描的包

1 <!-- 配置自动扫描的包:只扫描有 @Controller 和 @ControllerAdvice 注解的包 -->
2     <context:component-scan base-package="com.software.sssp" use-default-filters="false">
3         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
4         <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
5     </context:component-scan>


在配置自动扫描的包时,LZ 使用了 context:include-filter 子标签,目的就是让
SpringMVC 只扫描带有 @Controller 和 @ControllerAdvice 注解的包中的类,为什么要这样做呢?因为我们加入 Spring 的时候只创建了 Spring 的配置文件,还没有进行配置,一会我们配置的时候,也会先配置 Spring 的 IOC 扫描的包,这样就有可能出现某些包 Spring 的容器扫描了一遍,SpringMVC 又扫描了一遍,这样就会造成有些对象会创建多次,造成资源的浪费,配置
context:include-filter 标签就是为了解决这个问题,让 Spring 和 SpringMVC 只扫描各自关注的包即可。

本文由“程序员小专家”发布,2017年11月2日
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: