简介:
主要介绍如何将Spring和SpringMVC以及Mybatis整合到项目中
一、项目环境配置
Maven仓库导入坐标依赖(JAR包)
项目文件目录:
com
项目名
Bean
Controller
Dao
Impl
Service
Impl
resource
applicationContext.xml(Spring的配置文件)
springmvc.xml(SpringMVC的配置文件)
webapp
WEB-INF
css(css相关)
fonts(字体相关)
img(图片相关)
js(js相关)
pages(页面相关)
web.xml(web配置文件)
index.jsp(主页)
使用IDEA创建的webapp的maven项目会在WEB-INF自动生成applicationContext.xml文件,这里把他移动到resource里就可以了
二、整合SpringMVC(前端控制器)
编写Springmvc的配置文件:
1、开启注解扫描
这里我们不希望springmvc的注解也被spring所管理,所以这里需要在扫描时只要扫描controller包下的注解
2、视图解析
解析WEB-INF下pages文件夹中的所有以jsp为后缀的文件
3、配置JS/CSS/IMG等静态资源
4、开启注注解
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--开启注解扫描-->
<context:component-scan base-package="com.compusSystem">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!--视图解析器对象-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages"/>
<property name="suffix" value=".jsp"/>
</bean>
<mvc:resources mapping="/css/**" location="WEB-INF/css/"></mvc:resources>
<mvc:resources mapping="/js/**" location="WEB-INF/js/"></mvc:resources>
<mvc:resources mapping="/img/**" location="WEB-INF/img/"></mvc:resources>
<!--开启注解-->
<mvc:annotation-driven/>
</beans>
三、Spring的整合
applicationContext.xml配置文件
一般都使用注解的方式,所以配置文件中只要增加对注解的扫描即可,在整合的过程中,我们并不希望Spring仓库帮我们处理SpringMVC的部分,所以这里扫描注解要将Controller包下的注解排除在外
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- @version $Id: applicationContext.xml 561608 2007-08-01 00:33:12Z vgritsenko $ -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
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/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:component-scan base-package="com.compusSystem">
<!-- 配置不被扫描的注解-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
</beans>
由于Spring需要配置文件,但在以往使用spring的时候,我们是需要通过ApplicationContext读取配置文件的,那么在web项目中,我们希望Spring在Tomcat启动的同时就读取配置文件,这样我们才能成功的让Spring管理我们的Service和Dao层。
为了实现这样的需求,我们需要在web.xml读取Spring的配置文件(applicationContext.xml),需要在web.xml中加入如下配置信息
<!-- Spring监听器,默认只加载WEB-INF目录下的applicationContext.xml-->
<listener>
<listener class>org.springframework.web.context.ContextLoaderListener</listenerclass>
</listener>
<!-- 设置配置文件的路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
由于Spring的listener只能加载WEB-INF目录下的applicationContext.xml,但是我们把配置文件都放到了resource目录下,所以这里要使用context-param来设置文件的路径。
Tip:虽然在创建Maven仓库时,IDEA会自动在WEB-INF帮我们创建applicationContext.xml,但是为了让程序更有规范,一般都把配置文件放在resource目录下
四、Mybatis的整合
- 本文链接:http://yoursite.com/2020/08/22/SSM%E7%9A%84%E6%95%B4%E5%90%88%E6%AD%A5%E9%AA%A4/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions