一 SSM与三层架构的对应关系
SpringMVC:作为view的实现者,它的controller作为整个应用的控制器,完成用户请求的转发和对用户的响应。 Spring MVC是主流的Web前端框架。
Mybatis:作为Dao的实现者,完成数据库的增伤改查等功能。
Spring:是整个应用的大管家,整个应用中所有的bean的生命周期行为,都是由Spring来管理的,就是说整个应用中所有的对象的创建,初始化,销毁,以及对象之间关联的关系维护,都是由Spring来进行管理。
Spring SSM搭建步骤
1.首先搭建SpringMVC环境,导入相应依赖
<!-- 开启注解扫描
back-page:包的扫描路径,会扫描当前包及子包下的所有的组件
-->
<context:component-scan base-package="com.wh.springmvc_ssm"></context:component-scan>
<!-- 开启mvc扫描-->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 当控制器返回一个视图名称时,就会去/view/目录下查找后缀为.jsp的文件
/view/视图名称.jsp
-->
<property name="prefix" value="/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list >
<bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
<!-- MappingJackson2HttpMessageConverter 可以将JSON数据自动转换成java对象 -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
</list>
</property>
</bean>
2.创建数据库连接配置文件
driver=com.mysql.cj.jdbc.Driver
username=root
password=123456
url=jdbc:mysql://127.0.0.1/mybatis
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最小空间
minIdle=1
#最长等待时间
maxWait=60000
3.创建Spring-mybatis配置文件,将二者整合
<!-- 开启自动扫描-->
<context:component-scan base-package="com.wh.springmvc_ssm"></context:component-scan>
<!-- 引入数据源properties文件-->
<util:properties id="mysql" location="classpath:mysql.properties"></util:properties>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="#{mysql.driver}"></property>
<property name="username" value="#{mysql.username}"></property>
<property name="password" value="#{mysql.password}"></property>
<property name="url" value="#{mysql.url}"></property>
<!-- 配置初始化连接大小-->
<property name="initialSize" value="#{mysql.initialSize}"></property>
<property name="maxActive" value="#{mysql.maxActive}"></property>
<property name="minIdle" value="#{mysql.minIdle}"></property>
<property name="maxWait" value="#{mysql.maxWait}"></property>
</bean>
<!-- 配置SqlSessionFactory
mybatis-spring 实现Spring和mybatis整合
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置数据源-->
<property name="dataSource" ref="dataSource"></property>
<!-- 配置实体类别名-->
<property name="typeAliasesPackage" value="com.wh.springmvc_ssm.entity"></property>
<!-- 配置映射文件路径-->
<property name="mapperLocations" value="classpath:mappers/*.xml"></property>
</bean>
<!-- 配置Dao接口-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 配置Dao接口所在的包名,Spring会自动查找包名下面的类-->
<property name="basePackage" value="com.wh.springmvc_ssm.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
spring MVC运行流程
1.首先是浏览器向Spring发送请求,请求交给前端控制器DispatcherServlet处理
2.前端控制器将请求派发给HandleMapping,HandleMapping根据请求找到相应的Controller组件处理请求
3.Controller控制层处理完成之后,获得ModelAndView对象,ModelAndView对象可以封装视图信息和返回的结果数据
4.ModelAndView渲染页面后会返回前端控制器
5.前端控制器将渲染的页面返回给浏览器