1、SSM是什么?
从框架方面来说,它并不是指一个或某个框架,它是三个框架的缩写,简称为SSM。 这三个框架分别是:Spring、SpringMVC、Mybatis
Spring的存在意义?
Spring方便解耦,简化了开发,通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过渡耦合。
用户也不必再为单例模式类,属性文件解析等这些很底层的需求编写代码,可以更专注于上层应用。
它支持AOP编程与声明式事务控制,这样可以提高开发的效率。 而这些仅仅只是Spring的一部分
SpringMVC的存在意义?
SpringMVC是一种基于JAVA的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,以及融合在Spring Web Flow中。 它在SSM框架中,主要担任了Web方面的支持抵住。在SSM中大部分都会在SpringMVC中进行配置而不是Spring
MyBatis的存在意义?
mybatis 是一个优秀的基于java的持久层(Dao)框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句
最后 mybatis 框架执行sql 并将结果映射为java对象并返回。采用ORM(对象关系映射)思想解决了实体和数据库映射问题,对jdbc进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作
2、配置对应JAR包
这里我用两种方式来进行配置,一种为Maven,一种为基础导入Jar包方式。 但两种方式的前提,都是需要先新创建一个空项目哦!
Maven的配置方式
1.为空项目添加Maven的框架支持
在项目右键中点击【添加框架支持】,选择Maven和Web应用程序这两个选项
2.在pom.xml文件中配置对应JAR包
主要需要的是Spring的jar
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
这些jar包都是Spring与SpringMVC所需要的,至于Mybatis,我pom文件中找不到mybatis-jar包,所以我需要单独的引入。
Mybatis这边需要的是mybatis-jar和mybatis-spring-jar包,后面跟了个spring的,就代表它支持Spring框架
3.全部以依赖方式添加
如果不使用Maven的话,直接在项目中使用依赖方式添加jar包,也是可以的 在【添加框架支持】阶段,就可以把Spring和SpringMVC给勾选上了,这样就自动完成了Spring和SpringMvc的支持
配好后,项目依赖中应有这些jar包
3、配置【配置文件】
0.需要创建的层级:
- controller层
该层下需要创建对应的控制器Servlet - POJO文件夹
该层下需要创建与数据库对应的POJO类 - mapper层
该层下需要创建Mapper的接口实现 - service层
该层下需要创建业务层的接口及其接口实现
最后的项目结构应是这样
1.配置ApplicationContext.xml
ApplicationContext.xml为Spring的核心配置文件,在这里,我们需要配置如下:
<context:component-scan base-package="com.demonode">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm_integration"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:configuration.xml"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" id="configurer">
<property name="basePackage" value="com.demonode.mapper"></property>
</bean>
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:advice id="interceptor">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor advice-ref="interceptor" pointcut="execution(* com.demonode.service.impl.*.*(..))"></aop:advisor>
</aop:config>
2.配置spring-mvc.xml
该配置文件为SpringMvc的配置文件,但在SSM整合中Spring-mvc文件的绝大部分配置都交由给了Spring类配置 因此它的内部东西很少
<context:component-scan base-package="com.demonode.controller"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/page/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<mvc:default-servlet-handler></mvc:default-servlet-handler>
3.配置configuration.xml
该文件为Mybatis的配置文件,其内容主要交由给了Spring进行配置,而大多时候,Mybatis的使用都是用的注解,所以在内部所管理的东西很少,顶多就是配置下别名而已
<typeAliases>
<typeAlias type="com.demonode.entityclass.Person" alias="person"></typeAlias>
</typeAliases>
4、测试
使用Tomcat进行测试后,对一些必要类进行注解的配置,最终可以完成项目的运行
5、总结
可能在近几年或往后将使用SpringBoot+MybatisPuls来进行开发,但SSM依旧是经典,并且是基础,而一部分老项目中都是用着SSM来进行开发,因此SSM所带来的方便还是有用的。
|