网站设计的原则有哪些,wordpress latex公式,uzi粉丝做的网站,wordpress最新文章调用目录
1.MyBatis工作流程
2.${} 和 #{}的区别#xff1f;
3.mybatis多表关联查询如何实现一对一关联、一对多关联#xff1f;怎么设置关联对象的类型#xff1f;
4.Mybatis的好处#xff1f;mybatis的缓存机制#xff0c;一级#xff0c;二级介绍一下
5.mybatis给我…目录
1.MyBatis工作流程
2.${} 和 #{}的区别
3.mybatis多表关联查询如何实现一对一关联、一对多关联怎么设置关联对象的类型
4.Mybatis的好处mybatis的缓存机制一级二级介绍一下
5.mybatis给我们提供了哪些标签来生成动态SQL
6.Mybatis中resultType 和 resultMap 的区别?
7.Spring IOC、DI、AOP是什么?
8.Spring中配置的单例bean默认什么时候初始化如何实现懒加载
9.Springboot日志级别有哪些如何更改日志级别
10.Springboot自动配置的原理。
11. Springboot添加Interceptor拦截器时拦截器中preHandle、postHandle、afterCompletion方法含义
12.ConditionalOnClass、ConditionalOnMissingClass分别是什么含义
13.我们要写一个过滤器需要哪些步骤
14.SpringMVC拦截器和Servlet中的过滤器有什么区别
15.springmvc接收参数的几种形式
16.SpringMVC的工作流程
17.Spring 中事务的传播行为和隔离级别分别代表什么含义并分别列举几个常用的传播行为和隔离级别
18.SpringMvc的作用及你对springmvc的理解 1.MyBatis工作流程 1.加载配置文件 2.生成SqlSessionFactory 3.建立SqlSession 4.调用Mybatis提供的API 5.查询Mapper配置文件 6.返回结果 7.关闭session
2.${} 和 #{}的区别 ${}简单字符串替换把${}直接替换成变量的值不做任何转换这种是取值以后再去编译SQL语句底层采用Statement语句不能防止sql注入攻击。
• #{}预编译处理sql中的#{}替换成补全预编译语句有效的防止Sql语句注入这种取值是编译好SQL语句再取值。
3.mybatis多表关联查询如何实现一对一关联、一对多关联怎么设置关联对象的类型
一对一关联和一对多关联都需要自定义标签 Assocication Collection。
一对一通过标签定义通过javaType指定关联对象的类型
一对多通过标签定义通过ofType指定关联对象的类型
4.Mybatis的好处mybatis的缓存机制一级二级介绍一下 把Sql语句从Java中独立出来。
• 封装了底层的JDBCAPI的调用并且能够将结果集自动转换成JavaBean对象简化了Java数据库编程的重复工作。
• 自己编写Sql语句更加的灵活。
• 入参无需用对象封装或者map封装,使用Param注解
mybatis提供了缓存机制减轻数据库压力提高数据库性能
mybatis的缓存分为两级一级缓存、二级缓存
一级缓存是SqlSession级别的缓存缓存的数据只在SqlSession内有效
二级缓存是mapper级别的缓存同一个namespace公用这一个缓存所以对SqlSession是共享的
5.mybatis给我们提供了哪些标签来生成动态SQL
if标签: 判断标签当参数符合判断条件拼接SQL语句。
where标签: 替代where关键字。
foreach标签: 向SQL传递数组或listMyBatis使用foreach解析。
sql标签: 将实现的动态SQL判断代码块抽取出来组成一个SQL片段其它的statement中就通过include标签就可以引用SQL片段方便程序员进行开发。
set标签替代set关键字。
choose、when、otherwise标签用于实现类似于编程语言中的 switch 语句的逻辑判断功能。
6.Mybatis中resultType 和 resultMap 的区别?
resultType自动映射如果数据库结果集中的列名和要封装实体的属性名完全一致的话用 resultType 属性。
resultMap手动映射如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用 resultMap 属性通过 resultMap标签手动建立对象关系映射。
7.Spring IOC、DI、AOP是什么?
IOC控制反转将创建对象的权力转交给Spring由 Spring 负责创建对象管理对象装配对象并且管理这些对象的整个生命周期。
DI我们在使用Spring 容器的时候容器通过调用set 方法或者是构造器来建立对象之间的依赖关系。
AOP面向切面编程通过在不修改原有代码的情况下将横切关注点如事务管理、日志记录等从核心业务逻辑中解耦出来并在需要的地方进行统一的切面逻辑处理。
8.Spring中配置的单例bean默认什么时候初始化如何实现懒加载
Spring中配置的单例bean默认在容器启动时就初始化。
懒加载通过给添加lazy-init”true”属性就可以将bean初始化的时机延迟到使用时
懒加载只要单例模式下有效
9.Springboot日志级别有哪些如何更改日志级别
日志级别error、warn、info、debug、trace
更改日志级别application.yml中配置
logging: level: com: lanou: debug
10.Springboot自动配置的原理。
1.当启动项目时会执行SpringbootApplication
2.该注解会启动其下的EnableAutoConfiguration(自动装配)
3.自动装配的注解就是从 组件自动装配选择器AutoConfigurationImportSelector中读取组件列表
4.组件列表(META-INF/spring.factories)中就列举了众多需要进行整合的组件
5.就会找到对一个的组件类(xxxAutoConfiguration)
6.在组件类的上方就会判断当前项目是否需要与此组件整合 (ConditionalOnClass({DataSource.class, EmbeddedDatabaseType.class}))
7.如果判断当前项目没有此类则不会进行该组件的加载
8.如果判断当前项目有此类则会读取与该组件整合的配置文件 (EnableConfigurationProperties({DataSourceProperties.class}))
9.如果读取失败则装配失败项目报错
10如果读取成功则装配成功springboot与该技术即整合成功
总结整合什么技术 -- 导入该技术的jar包(场景包) -- 设置相关的属性 -- 整合成功
结论
SpringBoot先加载所有的自动配置类 xxxxxAutoConfiguration
每个自动配置类按照条件进行生效默认都会绑定配置文件指定的值。
xxxxProperties里面拿。
xxxProperties和配置文件进行了绑定
生效的配置类就会给容器中装配很多组件
只要容器中有这些组件相当于这些功能就有了
11. Springboot添加Interceptor拦截器时拦截器中preHandle、postHandle、afterCompletion方法含义
perHandle在controller的方法调用前调用执行。
postHandle在controller的方法执行之后返回给前端数据之前调用执行。
afterCompletion在整个执行流程结束之后调用执行。
12.ConditionalOnClass、ConditionalOnMissingClass分别是什么含义
ConditionalOnClass判断项目中是否有对应的类有创建bean对象没有不创建bean对象。
ConditionalOnMissingClass判断项目中是否有对应的类有不创建bean对象没有创建bean对象。
13.我们要写一个过滤器需要哪些步骤
1. 创建一个普通Java类
2. 实现Filter接口重写doFilter、init(FilterConfig config)、destroy
3. 通过在web.xml中配置、或者通过WebFilter注解注册到容器中
14.SpringMVC拦截器和Servlet中的过滤器有什么区别
拦截器是SpringMVC框架中封装的一个组件拦截的是让不让一个请求执行对应的Handler过滤器是Servlet标准中的组件拦截的是让不让一个请求访问Servlet或者页面。 1.拦截器是基于 java 的反射机制的而过滤器是基于函数回调。
2.拦截器不依赖与 servlet 容器过滤器依赖与 servlet 容器。
3.拦截器只能拦截控制器过滤器可以拦截所有的资源ServletJSPHTML。
4.拦截器在控制器的生命周期中可以多次被调用过滤器在所有请求调用之前。
5.拦截器可以访问控制器上下文、值栈里的对象而过滤器不能访问。
15.springmvc接收参数的几种形式
方式一、原生 HttpServletRequest 接收数据
方式二通过参数名称接收 要求 url后传递的参数名和方法的形参名保持一致
方式三、参数名称不一致时 RequestParam(name username) 参数映射 1、限制是否允许为空 RequestParam 默认不允许为空 RequestParam(required false) required false 是否允许为空 2、是否给默认值 RequestParam(defaultValue 12345) 方式四、通过对象接收数据 (当前端传递的参数名和对象的属性名保持一致时)
方法五、restful风格接收PathVariable 地址栏传参
16.SpringMVC的工作流程 17.Spring 中事务的传播行为和隔离级别分别代表什么含义并分别列举几个常用的传播行为和隔离级别
事务的传播行为说的是事务与事务之间的嵌套关系。比如B事务如果嵌套在A事务中时是复用A事务还是各用各的事务还是将A事务挂起仅在B事务中运行亦或是不在事务中运行。
常用的传播行为 传播行为含义REQUIRED默认当前有事务则加入没有则新建事务。REQUIRES_NEW总是新建事务并挂起当前事务如果存在。SUPPORTS当前有事务则加入没有则以非事务方式运行。NOT_SUPPORTED以非事务方式运行并挂起当前事务如果存在。MANDATORY必须在事务中调用否则抛出异常。NEVER必须在非事务中调用否则抛出异常。NESTED如果当前有事务则在嵌套事务中执行子事务回滚不影响父事务。
事务的隔离级别说的是事务与事务之间的可见性关系。比如A事务在提交到数据库之前B事务能否读取到A事务操作的数据。
常用的隔离级别
隔离级别含义存在的问题READ_UNCOMMITTED最低级别可能读到其他事务未提交的数据脏读。脏读、不可重复读、幻读。READ_COMMITTED只能读到其他事务已提交的数据解决脏读。不可重复读、幻读。REPEATABLE_READ同一事务内多次读取结果一致解决脏读、不可重复读。幻读MySQL 通过 MVCC 部分解决。SERIALIZABLE最高级别完全串行化执行解决所有并发问题但性能最差。无并发问题但性能低。
18.SpringMvc的作用及你对springmvc的理解
作用
spring MVC是一个分层的java web开发框架MVC模式提供了一个分层的体系结构其中每一层对其它层进行了抽象具体如下
1.模型Model应用程序所使用的特定域信息的表现形式
2.视图View域模型的表现形式(通过使用诸如输入元素和按钮之类的用户界面元素而这些元素与模型进行交互)。
3.控制器Controller主要负责解释用户的输入并转换为模型然后将转换后的结果显示给用户。
优点
让我们能非常简单的设计出干净的Web层进行更简洁的Web层的开发
天生与Spring框架集成如IoC容器、AOP等
提供强大的约定大于配置的契约式编程支持
非常灵活的数据验证、格式化和数据绑定机制
支持Restful风格