SSM整合
1.SSM框架意义
1.职责
1.Spring -> 容器,提供一些服务(事务控制)
1.负责对象的创建和对象间依赖关系 -> ioc
2.对事务进行统一的控制
2.SpringMVC -> MVC框架,用于处理用户的请求,并给出响应 -> web层 对servlet的包装
3.Mybatis -> 数据持久层的框架,将数据保存到数据库中 -> dao层 对jdbc的包装
2.整合
1.Spring和SpringMVC整合 -> 天生和spring融合 -> 对象的创建和依赖
2.Spring和Mybatis整合 ->
1.Mybatis的事务控制权交给spring来统一处理
2.负责mapper对象的创建->SqlSession创建->SqlSessionFactory->数据源
3.开源框架 -> mybatis
1.单表操作(crud) -> mybatis-mapper、mybatis-plus
2.分页 -> pageheper -> mybatis插件 -> 拦截sql语句
2.SM整合
1.整合mybatis:->核心:将sqlsessionfactory交给spring
1.在web配置文件中配置spring监听器
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> |
2.配置数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/pomeloschool?autoReconnect=true&useUnicode=true" /> <property name="username" value="root" /> <property name="password" value="4682135" /> </bean> |
3.创建sqlsessionfactory
<!-- spring代理sqlsessionfactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 加载mybatis配置文件,必须有,里面的内容可以为空. --> <!-- 有关mybatis的特性配置可以写在该文件中,比如插件,setting属性等 --> <property name="configLocation" value="classpath:mybatis.xml" /> <!-- 引用连接池 --> <property name="dataSource" ref="dataSource" /> <!-- 指定mapper文件位置,当不指定时mapper映射文件默认与接口在一个包下 --> <property name="mapperLocations" value="classpath:model/dao/*.xml" /> </bean>
|
4.注入SqlSessionTemplate
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> |
[5.将Mybatis的sqlsessionfactory交给spring]-可选
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> <property name="basePackage" value="model.dao"></property> <!-- basePackage所在的property的作用:将model.dao包中所有的接口产生与之对应的动态代理对象(对象名就是接口名的首写改小字母) --> </bean>
|
3.整合mvc
将MVC加入项目即可
1.jar包
2.配置
配置视图解析器
org.springframework.web.servlet.view.InternalResourceViewResolver |
3.mvc基础配置
<mvc:annotation-driven></mvc:annotation-driven> |
4.注解扫描器放入springioc中
<context:component-scan base-package="控制器所在包"></context:component-scan> |
controller层装配使用全注解形式,否则一会注解一会配置容易冲突
在controller中注入的属性一般都是service层的类 所以可以使用@Autowired
加上此注解以后,只需要再ioc中配置一个service的bean,而不需要ref装配给controller
此外最好再加上一个@Qualifier("service的id")按名字装配更加准确