摘要:
1:IOC容器,其实就是一个map容器,项目启动的时候,扫描包下面有@Controller、@Service、@Compont等注解的类,通过反射实例化成对象,把这些类放在map对象中、key默认是类名首字母小写,value是实例。 2:注入的原理就是在map容器中取出该对象 3:urlMaping 阅读全文
摘要:
一:JVM运行时数据区:程序计数器、虚拟机栈、本地方法栈、堆、方法区(元空间) 1:虚拟机栈:存储当前线程运行方法所需的数据、指令、返回地址。 栈帧(用来执行方法):每个方法在执行的同时都会创建一个栈帧,栈帧划分为:局部变量表(八大基本数据类型、对象引用reference)、操作数栈、动态链接、返回 阅读全文
摘要:
一:mybatis原生类API总结: 1:SqlSessionFactoryBuilder 解析配置 2:SqlSessionFactory 会话工厂 3:SqlSession 会话 封装对数据库操作的方法 4: MapperProxy JDK动态代理类 一:Spring集成mybatis总结: 1 阅读全文
摘要:
1:mybatis一级缓存:级别是session级别的,如果是同一个线程,同一个session,同一个查询条件,则只会查询数据库一次2:mybatis二级缓存:级别是sessionfactory级别的,是针对于各个线程发出的sql查询条件3:spring 关闭了mybatis的一级缓存,每一次查询都 阅读全文
摘要:
一:加了注解@Transactional就能起作用的原理总结: 1:首先是由类:JdkDynamicAopProxy,在invoke方法里面创建动态代理类,同时由拦截类进行拦截,代码如下所示: List<Object> chain = this.advised.getInterceptorsAndD 阅读全文
摘要:
1:在同一个类中,如果A方法有事务,B方法也有事务(propagation = Propagation.REQUIRES_NEW),如下代码所示: @Override@Transactionalpublic void insertUser(User user, Goods goods){ userM 阅读全文
摘要:
一:CAS(Compare-and-Swap),即比较并替换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术。 CAS是英文单词CompareAndSwap的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。 CAS指 阅读全文
摘要:
一:nginx可以实现反向代理,也可以实现动静分离、负载均衡: 1:具体配置如下所示: upstream :配置n台Tomcat服务器地址、权重等等配置信息 server:配置监听端口号、请求地址等配置信息 location:是在server里面的配置,主要是配置upstream等信息,也可以配置拦 阅读全文
摘要:
一:innodb行锁是如何实现: 1:innodb的行锁是通过给索引上的索引项加锁来实现的 2:通过索引进行数据检索,innodb才会使用行级锁,否则innodb会使用表锁(锁住索引的所有记录) 二:innodb算法之锁(临键锁、间隙锁、记录锁):都是根据innodb存储引擎 1:临键锁(Next- 阅读全文