Spring、SpringMVC、SpringData + JPA 整合详解

之前详细讲解过了 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 的配置文件,只是文件名不同而已)

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日

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值