Springboot的理解

简化spring应用的创建和开发过程,是微服务的底层核心框架,整合第三方内容的集成,便捷开发

Spring的理解

  • Spring是一个轻量级的 IOC / DI 和 AOP 容器的开源框架,其根本目的是为了简化Java开发。
  • IOC :控制反转,也叫依赖注入(DI),就是通过工厂模式(BeanFactory接口)自动选择类构造器、静态工厂方法或实例工厂方法为我们创建所需要的对象。使Java开发符合高内聚、低耦合的特性。
  • AOP :面向切面编程,将程序中独立于其他功能的方法抽取出来,使Java开发模块化,仅需专注于主业务即可。

    Springboot的注解有哪些

    @restcontroller和@controller的区别

    是组合注解,@Controller和@ResponseBody
    @Controller是Spring MVC用来标注业务控制层的注解
    @ResponseBody表明Spring MVC的返回值不再是一个视图,而是返回一个Json字符串,并把返回值放在ResponseBody中

    @restcontroller 和@service和@component都是用来干什么的

    @restcontroller表明返回值是JSON字符串,标注控制层注解
    @service是用来标注业务层注解
    @component 非业务层持久层控制层的组件都用这个来标注
    @Repostiory 标注持久层注解

    Restful 接口规范的理解

    学名:表现层状态转移,表明clent和server之间连接的方式说明,是一种风格和思想,规范化请求动作和返回结果
    URL定位资源,HTTP请求动词描述动作
    规范请求参数格式,字符串使用JSON格式,图片使用JPG格式等
    使用HTTP状态码标注请求状态

    事务的理解-特性

    ACID:原子性,一致性,隔离性,持久性

原子性:事务要么全部成功,要么全部失败
一致性:事务提交前数据是一致的,提交后数据也应该是一致的
隔离性:多个事务之间不能相互影响
持久性:事务提交之后,不论数据库发生什么,数据的修改都是永久的

事务的隔离级别

spring有五种
1、使用DB:使用数据库设置的级别
2、读未提交:读取未提交的数据,会导致脏读,幻读,不可重复读
3、读已提交:只能读取别人提交后的数据,可避免脏读,会导致幻读,不可重复读
4、可重复读:禁止读取别人未提交的数据,保证多次查询结果一致,会造成幻读
5、序列化:最严格的格式,事务串行执行。可避免以上所有问题

事务的传播特性

两种情况:
一、以当前事务为准,有则进入,无则分三种情况
1、自己创建事务
2、非事务执行
3、抛异常
二、不以当前事务为准
1、有则挂起,自己新建事务
2、有则挂起,非事务执行
3、有则挂起,抛异常
4、有则新建事务嵌套执行,无的话参照1.1新建一个事务

声明式事务注解的配置项

1、配置事务管理器
2、事务的传播机制
3、事务的隔离级别
4、事务的超时时间
5、是否为只读事务
6、指定触发事务的异常
7、指定抛出的异常不触发事务回滚

Mybatis的理解

持久层框架,面向sql编程,内部封装了JDBC,解耦合,支持动态SQL

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java对象映射成数据库中的记录。
Mybatis通过xml或注解的方式将要执行的statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

Mybatis的标签

Post和get的区别 (基于tcp对比)

Mybatis的工作原理

1、加载mybatis全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration,和一个个MappedStatement(包括了参数映射配置、动态SQL语句、结果映射配置),其对应着