SSM框架的整合与总结

SSM框架构建知识点回顾

一、ssm框架的理解

ssm框架是由Spring+SpringMVC+Mybatis整合而来,用于构造相对简单的JavaWeb项目。下面对三项技术分别讲解。

Spring

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,用于装载Bean(类),有了这个我们就可以不用New来创建对象。

SpringMVC

SrringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让他们更加容易定制,相当于controllor

Mybatis

Mybatis是一个支持普通SQL查询、存储过程和高级映射的优秀持久层框架、管理SQL,用来和数据库打交道。

二、SSM框架整合

1、整合思路

由于SpringMVC是属于Spring框架中的一个模块,所以他们之间不存在整合的问题,只需要导入相应的jar包即可。
SSM框架整合的问题主要集中在Spring和Mybatis之间的整合以及SpringMVC和Mybatis之间整合的问题

2、导入相应jar包

导入SpringMVC核心JAR包
导入Mybatis核心JAR包
导入·Spring核心JAR包
导入·Spring和Mybatis整合JAR包
导入数据库连接池和mysql驱动整合JAR包

==

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>





    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>




    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>

    <!-- SpringAOP相关jar -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>


    <!-- Spring事务支持相关jar -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>4.3.6.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.0.8.RELEASE</version>
    </dependency>

    <!-- MyBatis和Spring整合JAR -->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.2</version>
    </dependency>




    <!-- jstl标签库相关jar -->
    <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl -->
    <dependency>
        <groupId>org.apache.taglibs</groupId>
        <artifactId>taglibs-standard-impl</artifactId>
        <version>1.2.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-spec -->
    <dependency>
        <groupId>org.apache.taglibs</groupId>
        <artifactId>taglibs-standard-spec</artifactId>
        <version>1.2.5</version>
    </dependency>
    <dependency>
        <groupId>com.alipay</groupId>
        <artifactId>trade</artifactId>
        <version>20161215</version>
    </dependency>


</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <port>8080</port>
            </configuration>
        </plugin>
    </plugins>
</build>==

引用文本

3、编写配置文件

Spring配置文件
Mybatis配置文件
SpringMVC配置文件
web.xml配置文件

Spring配置文件 ApplicationContext.xml

==
<context:property-placeholder location=“classpath:dbInfo.properties”/>

    <property name="driverClass" value="${driverClass}"/>
    <property name="jdbcUrl" value="${jdbcUrl}"/>
    <property name="user"  value="${user}"/>
    <property name="password"  value="${password}"/>

</bean>

<!-- 为数据源添加事务管理器 -->
<bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 加载事务注解支持 -->
<tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>








<!-- 配置Mybatis工厂:SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <!-- 指定Mybatis核心配置文件位置 -->
    <property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>

<!-- 配置mapper扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.qst.dao"></property>
</bean>







<!-- 扫描Service -->
<context:component-scan base-package="com.qst.service"></context:component-scan> == 

Mybatis配置文件 mybatia-config

==

<typeAliases>
	<typeAlias type="com.qst.pojo.UserInfo" alias="userInfo"/>
	<!-- <package name=""/> -->
</typeAliases>

<!-- <environments default="development">
	<environment id="development">
		<transactionManager type="JDBC" />
		<dataSource type="POOLED">
			<property name="driver" value="${driver}" />
			<property name="url" value="${url}" />
			<property name="username" value="${username}" />
			<property name="password" value="${password}" />
		</dataSource>
	</environment>
</environments> -->

<mappers>
	<!-- 使用类路径引入 -->
	<mapper resource="com/qst/dao/UserDao.xml" />
	
	
	<!-- 使用包名引入 -->
	<!-- <package name="com.qst.mapper"/> -->
</mappers>  ==  

SpringMVC配置文件 SpringMVC-config

==
<context:component-scan base-package=“com.qst.controller”></context:component-scan>

	<!-- 加载注解驱动 :配置处理器映射器和适配器 -->
	<mvc:annotation-driven></mvc:annotation-driven>
	
	<!-- 让静态资源放行 -->
	<mvc:default-servlet-handler/>
	
	<!-- 配置视图解析器 -->
	<bean id="viewResolver"  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix">
         	<value>/WEB-INF/jsp/</value>
         </property>
         <property name="suffix">
          	<value>.jsp</value>
          </property>
	</bean>  ==  

配置web.xml文件

==


contextConfigLocation
classpath:applicationContext.xml



org.springframework.web.context.ContextLoaderListener

<!-- 编码过滤器,解决中文乱码问题 -->
<filter>
	<filter-name>encoding</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>encoding</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>


<!-- 前端控制器 -->
<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:springmvc-config.xml</param-value>
     </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>==

三、SSM框架系统层次结构

dao层(持久层):

主要是做数据持久层的工作,负责和数据库进行联络的一些任务在此封装,dao层的设计首先是dao的接口,配置数据源,以及有关数据库连接的参数在spring的配置文件中进行配置。

service层(业务层):

主要负责业务模块的逻辑应用设计;先设计接了,在设计其实现的类,业务逻辑实现具体要调用已定义的dao层的接口。

view层(表现层):

主要和控制层紧密结合,主要负责前台jsp页面的表示。

pojo层:

也有人称其为model、domain、bean等,pojo层是对应的数据库表的实体类。

controller层(表现层):

处理页面请求,并与service层交互

各层之间的联系

1、DAO层,Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势
2、Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。
3、Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

对象调用的过程

前端JSP ——> Controller ——> Service ——> Dao ——> 数据库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值