Spring在ssm的作用
用来管理bean工厂,生命周期
核心:
- IOC/DI(控制反转依赖注入):dao注入到service层,service层转给action层,Spring容器为beanfactory
- AOP:面向切面编程,动态代理,解决代码重复,解耦合
定义一个切面,在切面的纵向定义处理方法,处理完成之后,回到横向业务流。
Spring事务
- 编程式事务:编程方式管理,灵活,难维护
- 申明式:业务代码与事务管理分离,注解与xml管理事务
IOC作用
解决对象之间的依赖,把bean依赖关系通过配置文件或者注解关联起来,江都了耦合度
Spring配置文件内容
- 开启事务注解驱动
- 事务管理器
- 开启注解功能
- 配置数据库
- 配置sql会话工厂,别名,映射文件
- 不用编写DAO的实现类。
Spring注解
- 注册@controller@Service@component
- 注入@Autowired@Resource
- 请求地址@RequestMapping
- 返回具体数据类型而非跳转@Responseboby
Spring主要使用的模式
- 工厂模式:Bean创建
- 单例模式:默认每个bean的作用域都是单例
- 代理模式:AOP实现通过代理模式
IOC,AOP原理
IOC:通过反射机制生成对象注入
AOP:动态代理
Spring DI三种方式
- 构造器注入
- setter方法注入
- 接口
SpringMvc控制器是不是单例模式
式单例模式,有线程安全问题,解决方法,不同步,在控制器里面不能写字段
SpringMvc转发重定向
- 转发:return:“hello”
- 重定向:return:“redirect:xx.jsp”
- 转发是服务器行为快,重定向是客户端行为慢且地址栏变化
SpringMvc与Ajax相互调用
通过jackson框架把java对象转化为json对象
- 配置文件配置json映射
- Ajax方法返回object,list等
- 加注解@Responseboby
SpringMvc控制器注解
- Controller
@requestMapping注解用在哪
用于映射一个url到类或者方法
前台多个参数,都是一个对象,快速得到对象
- 直接在方法中申明这个对象,SpringMVC就自动把属性赋值到这个对象
Mybatis接口绑定,有什么好处
Mybatis实现了dao接口与xml映射文件绑定,自动生成接口具体实现类
什么时候用注解,申明时候用xml
- 注解:sql简单
- xml:xml绑定,@requestMap用来绑定xml文件
Mybatis核心处理类
SqlSession
Mybatis好处
把sql语言冲java独立出来,分装JDBC,可直接转化为javaBean对象,简化数据库编程重复工作
${}与#{}区别
- ${}简单字符串替换,可以直接换成变量的值,不做仍和改变。取值以后在编译sql
- #{}预编译处理,sql中的#{}替换成?,补全预编译语句,可以防止sql注入,先编译在取值
mybatis配置一对一
- property:属性名
- select:连接查询
- column:共同列
- javaType:集合元素类型
Mybatis分页与分页原理
- RowBounds对象分类
- sql内书写,带有物理分页
- 用@param注解