超全超简洁SSM知识点总结

spring


spring IOC创建对象的两种方式

1.创建容器对象 2.在当前包的所在类下找有关bean的配置文件 测试方便 spring主配置文件创建对象的方式 1.调用无参构造器 2.调用带参构造器 3.用工厂模式创建 工厂里面分为静态方法和非静态方法 spring给对象属性赋值依赖注入的方式 1.构造函数赋值 2.set方法注入值 分为 普通字段赋值和集合属性赋值(list map property) di 处理依赖关系 四种方式 最常用的在主配置文件中通过set方法注入,在service接收dao注入值,在controller接收service注入值 内部bean p名称空间,给属性注入值 自动装配 配置简单,但维护麻烦 配置方式和注解方式的区别 配置便于维护 但配置太多很繁琐 注解开发方便简化配置,但不利于后期维护,如果修改对象创建,关系处理等需要改代码 Java中的代理 分为 静态代理 1.目标对象必须实现接口 2.代理对象要实现和目标对象一样的接口 动态代理(jdk代理) 目标对象一定要实现接口,代理对象不用实现接口 Cglib代理(spring默认支持) 也叫子类代理 jdk动态代理有一个限制,使用动态代理的对象必须实现接口 如果向代理没有实现接口类,使用cglib 1.目标对象可以不实现接口 2.目标类不能final 如果final报错 3.方法是final/static,不会被代理拦截,会直接执行目标对象方法 代理总结 1.目标对象有实现接口,使用jdk动态代理 2.没有实现接口,使用cglib代理 3.没有实现接口且为final,不能进行aop编程,不能生成代理会报错 spring生成代理对象的过程 1.创建容器对象时,根据切入点表达式拦截的类,生成代理对象 2.目标对象有实现接口,使用jdk动态代理 3.没有实现接口,使用cglib代理 4.从容器获取代理后的对象 5.执行代理对象方法,运行时动态植入切面类中的通知 AOP(面向切面编程)是什么 实现原理就是Java动态代理,但是动态代理必须实现接口,所以spring的aop是用cglib实现的 事务 一组操作的执行单元,相对于数据库操作来讲事务管理的是一组SQL指令(增删改查) 事务的一致性要求操作必须全部执行成功,出现任何一条SQL语句没有执行成功,这一组 操作会全部回滚 spring声明式事务管理,就是粗粒度的事务控制 spring创建SessionFactory的方式 所有配置都在spring中完成 spring对dao操作的支持 spring提供了JDBCTemple模版的工具类,对原始的jdbc操作进行了简化 mybatis


mybatis操作dao层 直接写SQL语句 更加灵活 查询操作:返回单条记录时,表字段和对应实体属性命名一致时可以不使用resultMap属性配置,直接使用resultType="返回的全类名" 查询操作:返回多条记录时,返回结果配置的不是集合类型,而是集合元素的类型,参数通过Map等方式进行封装 mybatis两种查询方式 association 用于多对一或一对一 collection 用于一对多或多对多 Mybatis和hibernate一样,也使用缓存;缓存分为一级缓存和二级缓存,一级缓存指在SqlSession内;二级缓存能被所有的SqlSession共享 mybatis简化配置:扫描式加载SQL映射文件 springmvc


配置文件都需要配置什么 前端过滤器,控制器,视图解析器,中文乱码处理

原文发布于微信公众号 - java工会(javagonghui)

原文发表时间:2018-05-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

mongoDB简介及关键特性

441
来自专栏积累沉淀

Java设计模式(八)----代理模式

代理描述 1.生活中: 代理就是一个人或者一个组织代表其他人去做一件事的现实生活中的。在一些情况下,一个客户不想或者不能够直接引用一个对...

1849
来自专栏Java编程

Java中volatile关键字的含义

在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。

5460
来自专栏扎心了老铁

python codis集群客户端(一) - 基于客户端daemon探活与服务列表维护

在使用codis时候,我们遇到的场景是,公司提供了HA的Proxy(例如N个),但是不暴露zookeeper(也就是说没有codis后端服务列表)。 如果暴露z...

49610
来自专栏好好学java的技术栈

各大公司Java后端开发面试题总结

Java虚拟机规范中将Java运行时数据分为六种。 1.程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址。Java虚拟机的多线程就是通过线程轮流...

1195
来自专栏码农分享

SQL Server 多表数据增量获取和发布 3

大概的设计思路是这样的: 1、因为是多表数据增量获取,首先通过配置CDC已经完成多表的捕获配置。 通过CDC实现了数据的捕获,我们需要开一个服务,循环读取捕...

582
来自专栏zingpLiu

浅析Python多线程

学习Python多线程的资料很多,吐槽Python多线程的博客也不少。本文主要介绍Python多线程实际应用,且假设读者已经了解多线程的基本概念。如果读者对进程...

937
来自专栏zhisheng

《深入理解 Java 内存模型》读书笔记

前提 《深入理解 Java 内存模型》程晓明著,该书在以前看过一遍,现在学的东西越多,感觉那块越重要,于是又再细看一遍,于是便有了下面的读书笔记总结。全书页数虽...

3638
来自专栏Golang语言社区

Go 1.9 sync.Map揭秘

目录 [−] 有并发问题的map Go 1.9之前的解决方案 sync.Map Load Store Delete Range sync.Map的性能 其它 在...

4167
来自专栏Java学习之路

Java的LockSupport工具,Condition接口和ConditionObject LockSupportConditionConditionObject

在之前我们文章(关于多线程编程基础和同步器),我们就接触到了LockSupport工具和Condition接口,之前使用LockSupport工具来唤醒阻塞的线...

3355

扫码关注云+社区