ssm整合
Spring,SpringMVC,Mybastis
- 先搭建整合的环境
- 先把Spring的配置搭建完成
- 再使用Spring整合SpringMVC框架
- 最后使用Spring整合MyBatis框架
mysql创建
创建mysql,存放数据
相关代码参考:
id int primary key auto_increment, name varchar(20),money double
/alter table account change money password varchar(20) 改名
/alter table student modify column sname varchar(20); 修改属性
添加依赖
配置pom.xml
把需要用到的依赖加进来就好
添加log4j.properties
日志文件属性,包含打印级别
等信息
搭建spring思路,IOC
spring 先写个测试类逻辑
先测试的是IOC
applicationContext.xml配置IOC
测试类添加注解
sping-test模块 然后 autowrite 看看IOC成不成功
测试思路 新建s对象 写两个方法一个查询一个保存
service层
将来实现类对象由Spring管理,成员变量使用依赖注入
applicationContext.xml配置
<!-- 组件扫描-->
<context:component-scan base-package="">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
因为Controller是web层的交给springmvc做 所以跳过他
</context:component-scan>
SpringMVC
-
web.xml 里面配置
前端控制器DispatcherServlet
编码过滤器CharacterEncodingFilter
ContextLoaderListener作为监听器,会监听web容器相关事件,在web容器启动或者关闭时触发执行响应程序
-
springmvc中配置指定扫描包
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
添加逻辑视图的前面和后面部分 -
过滤静态资源
<mvc:resources location="/css/" mapping="/css/**" />
Controller
string
返回页面类型(model model)
设置值给返回
调用他的方法model.addAttribute
赋值 return 页面地址,会被视图前后补全
Dao层
-
applictionContext.xml
里配置sql连接,也可以配置在SqlMapConfig -
SqlMapConfig往 applicationContext整
在applicaton自己加数据源
优点 不用调用session.getMapper(xxx.class)
session.commit() session.close()不能用太多不然报错 十六次
AOP
- 配置AOP可以自动回滚数据
- 事务的特性:一致性 原子性 隔离性 持久性
- 管理sql的事务连接池 上面配了 这里那个值是调用
<!--配置Spring框架声明式事务管理-->
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
接着配事务表达式 (* com.wzx.service.impl.ServiceImpl.(…)) .* 什么什么impl 是说你实现类一般是这么写的 方便记忆 只省略了写方法
<aop:config>
<aop:pointcut id="service" expression="execution(* com.yzf.service.personservice.PersonService.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut="service" />
</aop:config>
- 然后配置事务管理方法,管理增删改方法,应该是CURD create update read delete
配置了 相关的才会有增强
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="*" isolation="DEFAULT"/>
</tx:attributes>
</tx:advice>
配好了会自动帮你看方法 方法包含什么词