草庐IT

【Spring基础补充】 注解补充(二)

@Scope和@Lazy@Scope根据源码中描述,作用域一共有四个。SINGLETON、PROTOTYPE、REQURST、SESSION目前主要应用的是前两个:SINGLETON:表明当前bean是单例的,每次获取到的对象都是同一个。PROTOTYPE:表明当前bean是原型的,每次获取到的对象都不是同一个。@Scope("prototype")注解也会导致延迟加载@Lazy一旦添加当前注解就默认延迟加载。只有在用的时候会初始化。准备两个实体类,一个添加@Lazy注解,一个不添加@Lazy注解通过控制台的日志输出可以发现添加@Lazy注解的bean不会在容器初始化的时候进行初始化,只有当我

【Spring基础补充】 注解补充(二)

@Scope和@Lazy@Scope根据源码中描述,作用域一共有四个。SINGLETON、PROTOTYPE、REQURST、SESSION目前主要应用的是前两个:SINGLETON:表明当前bean是单例的,每次获取到的对象都是同一个。PROTOTYPE:表明当前bean是原型的,每次获取到的对象都不是同一个。@Scope("prototype")注解也会导致延迟加载@Lazy一旦添加当前注解就默认延迟加载。只有在用的时候会初始化。准备两个实体类,一个添加@Lazy注解,一个不添加@Lazy注解通过控制台的日志输出可以发现添加@Lazy注解的bean不会在容器初始化的时候进行初始化,只有当我

SpringMVC基础源码分析(一)

实现Controller的三种方式分析每种实现的方式对应的HanderAdapter都不同。实现Controller接口该接口对应的HanderAdapter为SimpleControllerHandlerAdapter。使用案列:publicclassLeControllerimplementsController{ @Override publicModelAndViewhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{ //创建数据视图类 ModelAndViewmv

SpringMVC基础源码分析(一)

实现Controller的三种方式分析每种实现的方式对应的HanderAdapter都不同。实现Controller接口该接口对应的HanderAdapter为SimpleControllerHandlerAdapter。使用案列:publicclassLeControllerimplementsController{ @Override publicModelAndViewhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{ //创建数据视图类 ModelAndViewmv

MySQL执行流程

MySQL执行流程select语句执行流程增删改语句执行流程update语句的整体执行流程和select语句是一样的。只是少了缓存的那一步骤。mysql想完成数据的修改,会先从存储引擎层读取数据,把数据读取到服务层进行数据的修改,再通过存储引擎层把数据更新到数据库中。mysql每次读取数据都会读取16384B的数据,默认是16KB的数据。一页的数据。在innodb引擎中设计了bufferpool缓冲区。Mysql从磁盘中通过IO读取数据到bufferpool中,引擎从bfferpool中获取数据,然后修改,再把数据写入到bufferpool中。从而完成读写的操作,因为是基于内存的操作,所以速度

MySQL执行流程

MySQL执行流程select语句执行流程增删改语句执行流程update语句的整体执行流程和select语句是一样的。只是少了缓存的那一步骤。mysql想完成数据的修改,会先从存储引擎层读取数据,把数据读取到服务层进行数据的修改,再通过存储引擎层把数据更新到数据库中。mysql每次读取数据都会读取16384B的数据,默认是16KB的数据。一页的数据。在innodb引擎中设计了bufferpool缓冲区。Mysql从磁盘中通过IO读取数据到bufferpool中,引擎从bfferpool中获取数据,然后修改,再把数据写入到bufferpool中。从而完成读写的操作,因为是基于内存的操作,所以速度

MySQL索引的基本理解

之前一致以为索引就是简单的在原表的数据上加了一些编号,让查询更加快捷。后来发现里面还有更深的知识。索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后通读整个表以找到相关行。表数据越多,成本就越高。如果表有相关列的索引,MySQL可以快速确定要在数据文件中间查找的位置,而无需查看所有数据。这比顺序读取每一行要快得多。自从MySQL5.5版本之后,MySQL的默认存储引擎就变成了InnoDB。--查看当前数据库支持的搜素引擎showENGINES;当我们创建一个表时,InnoDB引擎会根据主键给我们创建一个聚簇索引树。会形成一个只有叶子节【最下面的节点】点存储数据的B

group by 、concat_ws()、 group_caoncat()的使用

group系列之前觉得这里简单不需要再进行总结了。后来发现还是需要总结巩固一下,还是有一些方法之类的之前未使用过。这里来重新整理,记录一下。groupby将表中的数据根据某个条件进行分组。比如下面这张表:如果我们按照班级进行分组那么数据将会是这样的:通过mysql执行表格数据进行校验:selectclassname,GROUP_CONCAT(id,name,courseName,scoreSEPARATOR'%')fromwinfunGROUPBYclassname;运行结果:group_concat()待会再总结。根据groupby的特性,这也是为什么通过groupby进行分组后,我们对数据

MySQL索引的基本理解

之前一致以为索引就是简单的在原表的数据上加了一些编号,让查询更加快捷。后来发现里面还有更深的知识。索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后通读整个表以找到相关行。表数据越多,成本就越高。如果表有相关列的索引,MySQL可以快速确定要在数据文件中间查找的位置,而无需查看所有数据。这比顺序读取每一行要快得多。自从MySQL5.5版本之后,MySQL的默认存储引擎就变成了InnoDB。--查看当前数据库支持的搜素引擎showENGINES;当我们创建一个表时,InnoDB引擎会根据主键给我们创建一个聚簇索引树。会形成一个只有叶子节【最下面的节点】点存储数据的B

group by 、concat_ws()、 group_caoncat()的使用

group系列之前觉得这里简单不需要再进行总结了。后来发现还是需要总结巩固一下,还是有一些方法之类的之前未使用过。这里来重新整理,记录一下。groupby将表中的数据根据某个条件进行分组。比如下面这张表:如果我们按照班级进行分组那么数据将会是这样的:通过mysql执行表格数据进行校验:selectclassname,GROUP_CONCAT(id,name,courseName,scoreSEPARATOR'%')fromwinfunGROUPBYclassname;运行结果:group_concat()待会再总结。根据groupby的特性,这也是为什么通过groupby进行分组后,我们对数据