Spring中定义了一系列的注解,以下有关其常用的注解说明错误的是:Autowired用来完成IOC,负责对象的创建和管理

在Mybatis中,下列关于ResultType说法错误的是:如果Pojo属性名和sql语句查询出来的字段不一致,也能用resultType进行结果映射

关于Ajax用法说明正确的是:Ajax异步调用依赖Ajax引擎

Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块:AOP模块

以下哪些注解不是SpringBoot提供的:Configuration

下列不属于AOP相关注解的是:@ComponentScan

下列关于controller,service,dao说法中,选出最正确的一项是:controller层调用service,service调用dao层,这个调用关系是单向的

MybatisPlus模糊查询以'君'开头应该使用什么关键字:likeRight

MybatisPlus中的BaseMapper中的新增方法有几个?1个

下面关于Mybatis特点说法错误的是:Mybatis是一种持久层框架,但不属于ORM映射

下列关于singleton说法中错误的是:多实例

下列关于SpringMVC说法中,选出错误的一项是:SpringMVC是一个基于Spring的web框架

动态SQL的<foreach>各个属性的作用错误的是:collection要被遍历的数组

SpringBoot中lombok插件在哪个阶段有效:编译期有效

关于正确代理说明正确的是:正向代理是客户端代理

以下关于SysMenuMapper.xml说法错误的是:resultType与resultMap没有区别

下面关于接口开发错误的是:Mapper.xml文件中的namespace不是mapper接口的类路径

关于项目部署前后端分离说法正确的是:一个前端服务器可以访问多个后端服务器

VUE.js中数组.shift()的作用是:删除第一个元素

IDEA整合SpringBoot热部署下列说明正确的是:SpringBoot需要添加热部署的依赖jar包,之后配置IDEA的加载项

关于Linux中安装mariaDB数据库说明正确的是:数据库安装启动后,默认只能允许本地访问

下列选项中,不属于Spring框架优点的是:提供强大的、可以有效减少页面代码的标签

下列不属于maven优点的是:maven与其他jar包管理方式相比使用难度大

nginx并发能力是多少:3-5万次/秒

下面关于Lombok说法不正确的是:Lombok插件添加上依赖就可以启动了

以下关于maven的结构目录说法错误的是:/target目录是用来存放.java文件的

关于VUE对象中v-model用法正确的是:用在用户输入的标签中,例如文本框/单选框/复选框等

关于MybatisPlus中条件构造器说明正确的是:条件构造器用来拼接where条件

动态查看日志的命令是:tail-fxxx.log

MyBatis的mapper接口调用时哪些描述是错误:Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的resultType的类型相同

在WEB-INF目录下,必须存放的文件为?web.xml

下面哪项不是response对象的方法?getParameter(Stringstr)

在J2EE中属于Web层的组件有?Servlet

在web.xml中使用标签配置过滤器?<filter>和<filter-mapping>

Mybatis中哪些属性可以完成ORM:resultMap

关于同源策略说明正确的是:浏览器解析JS发起Ajax请求时会触发同源策略

关于JSON说明正确的是:一种轻量级的数据交换格式

属于VUE生命周期方法的是:Mount

关于hosts文件的作用说明正确的是:hosts文件只对本机有效

${}和#{}的区别哪些是错误的:$使用预编译

在修改阶段调用的生命周期方法是:updated

关于Mybatis框架说明错误的是:Mybatis是一个全自动化的ORM映射框架

JSONP方式可以发送GET或POST请求错

CORS实现跨域资源共享,用来解决跨域问题对

SpringMVC是基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分对

BeanFactory是ApplicationContext的子接口,扩展了其功能,一般面向程序员自身使用错

ApplicationContext在启动的时候就把所有的Bean全部实例化了对

BeanFactory在启动的时候会进行实例化Bean,而不是从容器中拿出Bean的时候才会实例化错

AOP面向切面编程,其中切面可以事实为切入点表达式+通知方法的综合对

MyBatis里面的核心处理类交SqlMapClient,IBatis里面的核心处理类叫做SqlSession错

MyBatis的强大特性之一便是动态SQL。摆脱根据不同条件拼接SQL语句的痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号对

事务管理是Spring提供一个不可持续的事务管理接口,可以扩展到上至本地事务下至全局事务错

异常处理是Spring提供方便的API把具体技术相关的异常转化为一致的unchecked异常对

SpringCore是核心容器,提供了Spring框架的全部功能。Spring以Bean的方式组织和管理Java应用中各个组件及其关系,使用BeanFactory生产和管理对象错

SpringWebMvc是MVC模块,MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的对

SpringWeb是Web模块,Web上下文模块建立在web应用程序上下文模块之上,为基于web的应用程序提供了上下文对

SpringORM是对象实体映射,Spring框架插入了若干个ORM框架,从而提供了ORM对象的关系工具,所有这些都遵从Spring的通用事物和DAO异常层次结构对

SpringDao是JDBC和Dao模块,JDBC、DAO的业务层提供了有意义的异常层次结构,可用该结构来管理异常处理,和不同数据库供应商所抛出的错误信息错

SpringAop是面向切面编程,是面向对象编程的有效补充和完善,Spring的AOP是基于静态代理实现的错

SpringContext是应用上下文,一个配置文件向Spring框架提供上下文信息对

Spring框架中的单例bean是线程安全的错

SpringBean有singleton、prototype、request三个作用域错

Spring的IOC有两种注入方式:setter方法注入,根据注解注入错

切面=切入点表达式or通知方法错

ApplicationContext是BeanFactory的子接口,扩展了其功能,一般面向程序员自身使用对

@Bean是标在方法上,用于将方法的返回值对象放入容器对

MVC设计模式是通过把Model,View,Controller分离,将web层进行职责解耦对

Controller控制器只是负责处理由DispatcherServlet分发的请求错

@RequestMapping用于处理请求url映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径对

@RequestParam是标注在方法参数之前,用于对传入的参数做一些限制,支持两个属性错

SpringMVC提供了拦截器规范的接口,创建一个类实现HandlerInterceptor,重写接口中的抽象方法对

MyBatis优点:基于配置文件+注解,可以灵活的书写原生sql语句;缺点:在单表操作时,需要写sql语句,比较麻烦对

MyBatis在处理#{}时,它会将sql中的#{}替换为".",然后调用PreparedStatement的set方法来赋值错

Mybatis有三级缓存,一级缓存是SqlSession级别的,二级缓存是Mapper级别的,三级缓存是SqlSessionMapper错

拦截器是SpringMVC所独有的对

SqlSession是多线程对象,因为它是线程安全的,是持久化操作的独享对象,类似jdbc中的Connection,底层就封装了jdbc连接错

mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件对

Spring的IOC有三种注入方式:构造器注入,setter方法注入,注解注入。

Spring的DI有三种注入方式:set方式注入,构造方法注入,基于配置文件注入。

SpringMVC的五大组件有:DispatcherServlet,HandlerMapping,Controller,ModelAndView,ViewResolver。

NGINX常见命令有启动命令:startnginx,重启命令:nginx-sreload,停止命令:nginx-sstop。

Nginx的主要功能如下:反向代理服务器,实现负载均衡,虚拟主机

调方法Proxy.newInstance方法,方法如下:

publicstaticObjectnewProxyInstance(ClassLoaderloader,Class<?>[]interfaces,InvocationHandlerh)throwsIllegalArgumentException

该方法里面需要三个参数,分别是:类加载器,接口,InvocationHandler处理类。

调方法invoke方法,方法如下:

Objectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable

该方法里面需要三个参数,分别是:代理对象本身,代理对象要执行当前方法的一个对象,实际的参数。

在Spring中,有三种配置Bean的方式,分别为:基于XML配置、基于注解配置、基于Java配置。

Spring框架中用到了的设计模式,分别为:代理模式,单例模式,工厂模式。

MVC设计模式的结构为模型(Model),视图(View),控制器(Controller),MVC是一个众所周知的以设计界面应用程序为基础的

Springbeans被SpringIOC容器初始化,装配,和管理,这些beans通过容器中配置的元数据创建。

控制反转IOC是应用本身不负责依赖对象的创建和维护,都是由外部容器负责。

AOP面向切面在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程

@Autowire注解来源是Spring注解,作用范围是字段、setter方法、构造器,装配方式是优先按照类型

@Controller注解将一个类标记为SpringWebMVC控制器,标有它的Bean自动导入到IoC容器中。

SpringMVC的拦截器是依赖JDK的反射实现,SpringMVC的拦截器主要是进行拦截请求,通过对Handler进行处理的时候进行拦截。

Mybatis是一个半自动ORM框架,它内部封装了JDBC,开发时只需要关注SQL语句本身。

MyBatis使用XML或注解配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

MyBatis通过xml文件或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。

ORM是对象关系映射,是一种为了解决关系型数据库数据与Java对象(POJO)的映射关系的技术。

ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中。

Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能。

SpringMvc的控制器是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是控制器里面不能写字段。

mybatis把sql语句从Java源程序中独立出来,放在单独的XML文件中编写,给程序的维护带来了很大便利。

使用Spring框架的好处是轻量的,基本的版本大约2MB,通过控制反转实现了松散耦合,支持面向切面的编程,把应用业务逻辑和系统服务分开,包含并管理应用中对象的生命周期和配置。

SpringMVC中解决GET|POST请求中文乱码方式是:在web.xml中配置CharacterEncodingFilter过滤器设置成utf-8,修改tomcat配置文件添加编码与工程编码一致,对参数进行重新编码

AOP通知方法:,即对目标方法进行扩展的封装方法有:前置通知,后置通知、异常通知、最终通知、环绕通知。

BeanFactory和ApplicationContext都是接口,并且ApplicationContext是BeanFactory的子接口。同时它们都是spring的容器对象。

AOP切入点表达式,即目标对象满足切入点表达式的判断,则spring自动为其创建代理对象有:bean表达式,within表达式,execution表达式,@annotation表达式

反向代理服务器位于用户与目标服务器之间,对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,用户不知道目标服务器的地址,也无须在用户端作任何设定。

正向代理是客户端和原始服务器之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标,即原始服务器,然后代理向原始服务器转交请求并将获得的内容返回给客户端。

拦截器可以获取IOC容器中的各个bean,而过滤器就不行,在拦截器里注入service,可以调用业务逻辑。

Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。

BeanFactory是一个Bean工厂,使用简单工厂模式,是SpringIoC容器顶级接口。

前端控制器DispatcherServlet不需要程序员开发,作用:接收请求、响应结果,相当于转发器。

处理器映射器HandlerMapping不需要程序员开发,作用:根据请求的URL来查找Handler

视图解析器ViewResolver不需要程序员开发,作用:进行视图的解析,根据视图逻辑名解析成真正的视图。

Mybatis优点:上手容易、提供xml标签、支持动态SQL编程,Mapper映射,支持对象与数据库的ORM字段关系映射。

Mybatis应用场景:适用于表关联较多的项目,持续维护开发迭代较快的项目,需求变化较多的项目。

预编译是提前对SQL语句进行预编译,而其后注入的参数将不会再进行SQL编译。

Mybatis使用RowBounds对象进行分页,针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。

Spring对于循环依赖的解决不是无条件的,首先前提条件是针对scope单例并且允许解决循环依赖的对象。

拦截器是基于java的反射机制,而过滤器是基于函数回调,拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

session在一个HTTPSession中,一个bean定义对应一个实例。该作用域仅在基于web的SpringApplicationContext情形下有效。

本质上IoC和DI是同一思想下不同维度的表现,IoC是bean的注册,DI是bean的初始化。

切面是拦截器类会定义切点以及通知,切点是具体拦截的某个业务点,通知是切面中声明通知方法在目标业务层的执行位置。

ApplicationConext是BeanFactory的子接口,扩展了BeanFactory的功能,提供了支持国际化的文本消息,统一的资源文件读取方式,事件传播以及应用层的特别配置等。

Mybatis是一款持久层框架,支持定制化SQL,存储过程以及高级映射。

Mybatis可以使用XML或注解来配置和映射原生类类型、接口和java的POJO为数据了中的记录。

model是关注支撑业务的信息构成,构建成模型;control是调用业务逻辑产生合适的数据以及传递数据给视图用于呈献;view怎样对数据进行布局,以一种优美的方式展示给用户。

在spring中,对象无需自己查找或创建与其关联的其他对象,由容器负责把需要相互协作的对象引用赋予各个对象,使用autowire来配置自动装载模式。

Spring事务的本质就是数据库对事务的支持,真正的数据库层的事务提交和回滚是通过binlog或者redolog实现的。

SpringMvc的控制器是单例模式,在多线程访问时会有线程安全问题。解决这种问题,不能够使用同步,并且不能在控制器中写字段。

IOC/依赖注入把应用的代码量降到最低,使应用容易测试,单元测试不再需要单例和JNDI查找机制,以最小的代价和最小的侵入性使松散耦合得以实现。

依赖注入是IOC的一个方面,不用创建对象,而只需要描述对象如何被创建,不在代码里直接组装组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后IOC容器负责把他们组装起来。

当一个bean仅被用作另一个bean的属性时,能被声明为一个innerbean,在Spring的基于XML的配置元数据中,可以在<property/>或<constructor-arg/>元素内使用<bean/>元素。

Spring的核心特性是什么?Spring优点?

答:

Spring的核心是控制反转(IoC)和面向切面(AOP)

Spring优点:

1、方便解耦,简化开发

2、AOP编程的支持

3、声明式事务的支持

4、方便程序的测试

5、方便集成各种优秀框架

6、降低JavaEEAPI的使用难度

请介绍一下bean的生命周期

答:

1、bean定义:在配置文件里面用来进行定义。

2、bean初始化:有两种方式初始化:

3、bean调用:有三种方式可以得到bean实例,并进行调用

4、bean销毁:销毁有两种方式

持久层设计的目标包括:

答:

1、数据存储逻辑的分离,提供抽象化的数据访问接口。

2、数据访问底层实现的分离,可以在不修改代码的情况下切换底层实现。

3、资源管理和调度的分离,在数据访问层实现统一的资源调度(如缓存机制)。

4、数据抽象,提供更面向对象的数据操作。

解释用来指导Spring容器用自动装配方式进行依赖注入的五种自动装配方式:

答:

no:默认的方式是不进行自动装配,通过显式设置ref属性来进行装配。

byName:通过参数名自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byname,之后容器试图匹配、装配和该bean的属性具有相同名字的bean。

byType::通过参数类型自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byType,之后容器试图匹配、装配和该bean的属性具有相同类型的bean。如果有多个bean符合条件,则抛出错误。

constructor:这个方式类似于byType,但是要提供给构造器参数,如果没有确定的带参数的构造器参数类型,将会抛出异常。

autodetect:首先尝试使用constructor来自动装配,如果无法工作,则使用byType方式。

解释MyBatis中命名空间(namespace)的作用

答:

在型项目中可能存在大量的SQL语句,此时为每个SQL语句起一个唯一的标识就变得并不容易了。为了解决这个问题在MyBatis中,可以为每个映射文件起一个唯一的命名空间,这样定义在这个映射文件中的每个SQL语句就成了定义在这个命名空间中的一个ID。只要能够保证每个命名空间中这个ID是唯一的,即使在不同映射文件中的语句ID相同,也不会再产生冲突了。

MyBatis中的动态SQL是什么意思?

答:

对于一些复杂的查询,我们可能会指定多个查询条件,但是这些条件可能存在也可能不存在,如果不使用持久层框架我们可能需要自己拼装SQL语句,不过MyBatis提供了动态SQL的功能来解决这个问题。

解释MVC模式的好处:

答:

1.各施其职,互不干涉:在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。

2.有利于开发中的分工:在MVC模式中,由于按层把系统开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。

3.有利于组件的重用:分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。

SpingMvc中的控制器的注解一般用哪个?有没有别的注解可以替代?

答:

一般用@Controller注解,也可以使用@RestController,@RestController注解相当于@ResponseBody+@Controller,表示是表现层,除此之外,一般不用别的注解代替。

SpringMVC常用的注解有哪些?

答:

@RequestMapping:用于处理请求url映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。

@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。

@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。

如何自定义注解?

答:

创建一个自定义注解:与创建接口类似,但自定义注解需要使用@interface

添加元注解信息,比如@Target、@Retention、@Document、@Inherited等

创建注解方法,但注解方法不能带有参数

注解方法返回值为基本类型、String、Enums、Annotation或其数组

注解可以有默认值;

Spring中重要的注解哪些,并分别解释他们的用途

答:

@Controller:用于SpringMVC项目中的控制器类。

@Service:用于服务类。

@Repository:用于dao层。

@RequestMapping:用于在控制器处理程序方法中配置URI映射。

@ResponseBody:用于发送Object作为响应,通常用于发送XML或JSON数据作为响应。

@PathVariable:用于将动态值从URI映射到处理程序方法参数。

@Autowired:用于在springbean中自动装配依赖项。

@Qualifier:使用@Autowired注解,以避免在存在多个bean类型实例时出现混淆。

@Scope:用于配置springbean的范围。

@Configuration,@ComponentScan和@Bean:用于基于java的配置。

@Aspect,@Before,@After,@Around,@Pointcut:用于切面编程(AOP)。

SpringBean有哪些作用域,它们之间有什么区别?

答:

singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单例的模式由beanfactory自身来维护。

prototype:原形范围与单例范围相反,为每一个bean请求提供一个实例。

request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。

Session:与请求范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。

global-session:global-session和Portlet应用相关。当应用部署在Portlet容器中工作时,它包含很多portlet。如果想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中。

请解释一下SpringBean容器的生命周期流程?

答:

Spring容器根据配置中的bean定义中实例化bean。

Spring使用依赖注入填充所有属性,如bean中所定义的配置。

如果bean实现BeanNameAware接口,则工厂通过传递bean的ID来调用setBeanName()。

如果bean实现BeanFactoryAware接口,工厂通过传递自身的实例来调用setBeanFactory()。

如果存在与bean关联的任何BeanPostProcessors,则调preProcessBeforeInitialization()方法。

如果为bean指定了init方法的init-method属性,那么将调用它。

如果存在与bean关联的任何BeanPostProcessors,则将调用postProcessAfterInitialization()方法。

如果bean实现DisposableBean接口,当spring容器关闭时,会调用destory()。

如果为bea指定了destroy方法的destroy-method属性,那么将调用它。

AOP是什么?

答:

AOP意为面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。Spring中的AOP利用代理对象在不修改源代码的条件下,对方法进行扩展.

解析SpringMVC五大组件的含义及其作用

答:

DispatcherServlet:前置控制器,配置在web.xml文件中,拦截匹配请求,拦截匹配规则要自定义。拦截的请求,依据相应的规则分发到目标Controller处理。前端控制器设计模式的实现,提供SpringWebMVC集中访问点,而且负责职责的分派,而且与SpringIOC容器无缝集成,可以获得Spring所有好处。

HandlerMapping:处理器映射,作用是请求派发,负责请求和控制器建立对应的关系。由DispatcherServlet调用,DispatcherServlet会从容器中取出所有HandlerMapping实例并遍历,让HandlerMapping实例根据自己实现类的方式去尝试查找Handler。

Controller:控制器,负责处理由DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model,然后再把该Model返回给对应的View进行展示。

ModelAndView:封装数据信息和视图信息的模型。使用ModelAndView类来存储处理完的结果数据,以及显示该数据的视图。作用是业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让ModelAndView返回SpringMVC框架,框架调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上。

ViewResolver:视图解析器,作用是把一个逻辑上的视图名称解析为一个真正的视图。DispatcherServlet收到请求后,依据HandlerMapping的配置,调用相应的Controller来处理,Controller将处理结果封装成ModelAndView对象,返回给DispatcherServlet,DispatcherServlet依据ViewResolver的解析,调用相应的视图对象来生成相应的页面。

SpringMVC的处理流程

答:

客户端向服务端发起请求

请求经过滤器到达DispatcherServlet前端控制器,并初始化SpringMVC配置。

前端控制器DispatcherServlet将请求资源url传递给HandlerMapping对象处理。

HandlerMapping对象依据URL获取对象请求的执行链对象,然后先执行拦截器,再执行后端处理器对象。

将后台控制器的处理结果例如视图和数据封装到ModelAndView对象,最后返回给SpringMVC。

SpringMVC解析控制层方法的返回结果(例如视图解析器解析视图)再进一步处理。

请求处理结束,返回客户端相关信息

SpringMVC的拦截器和过滤器什么区别

答:

SpringMVC中的拦截器interceptor用于对控制器controller进行预处理和后处理的技术;

可以定义拦截器链,拦截器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。

拦截器interceptor与过滤器filter的区别

过滤器是servlet中的,任何框架都可以使用过滤器技术;

拦截器是SpringMVC所独有的

过滤器设置/*可以拦截任何资源

拦截器只对控制器controller中的方法进行拦截

拦截器利用的是AOP思想;

自定义拦截器,需要实现HandlerInterceptor接口

SpringMVC统一异常处理的思想和实现方式

答:

使用SpringMVC之后,代码的调用者是SpringMVC框架,也就是说最终的异常会抛到框架中,然后由框架指定异常处理类进行统一处理

创建一个自定义异常处理器(实现HandlerExceptionResolver接口),并实现里面的异常处理方法,然后将这个类交给Spring容器管理

在类上加注解(@ControllerAdvice)表明这是一个全局异常处理类

在方法上加注解(@ExceptionHandler),在ExceptionHandler中有一个value属性,可以指定可以处理的异常类型

Mybatis的工作原理

答:

mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件

SqlSessionFactory的实例直接开启一个SqlSession

再通过SqlSession实例获得Mapper对象

执行Mapper映射的SQL语句,完成对数据库的CRUD和事务提交

关闭SqlSession

MyBatis中resultType和resultMap的区别

答:

若是实体类的字段和数据库的字段一一对应,则可直接用resultType。

如果数据库字段和实体类字段不是一一对应的,则需要采用resultMap属性,两者字段之间进行映射。

resultType和resultMap都是返回对象的,resultType实体类字段必须和数据库字段一一对应,而resultMap如果两者字段名不同,则可通过定义resultMap进行字段的映射。

MyBatis中用于实现动态SQL的元素主要有

答:

if语句简单的条件判断

choose,when,otherwize,相当于java语言中的switch,与jstl中choose很类似

where主要是用来简化sql语句中where条件判断的,能智能的处理and/or,不必担心多余导致语法错误

set主要用于更新,功能和where标签元素差不多,主要是在包含的语句前输出一个set,然后如果包含的语句是以逗号结束的话将会把该逗号忽略,如果set标签最终返回的内容为空的话则可能会出错

trim元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix,把包含内容的首部某些内容覆盖,也可以把尾部的某些内容覆盖,对应的属性是prefixOverrides和suffixOverrides,trim可以用来实现where和set的效果

foreach相当于java中有for,通过它实现循环,循环的对象当然主要是java集合或数组

mybatis缓存机制

答:

Mybatis有两级缓存,一级缓存是SqlSession级别的,默认开启,无法关闭;二级缓存是Mapper级别的,二级缓存默认是没有开启的,需要手动开启。

当配置文件配置了cacheEnabled=true时,就会开启二级缓存,二级缓存是mapper级别,如果配置了二级缓存,那么查询数据的顺序应该为:二级缓存》》》一级缓存》》》数据库。

河北工业大学城市学院2019级 Java企业级系统管理期末复习资料相关推荐

  1. JAVA程序设计基础期末复习资料

    第1章 Java语言概述 Java语言的特点.(Java语言在1995年是Sum公司推出,2010年又是被Oracle收购 P2平台无关性.编译与解释并存. 面向对象的基本特征. 继承性:将公共的方法 ...

  2. 长春工业大学计算机组成原理考试开卷考吗,计算机组成原理期末复习资料

    长春工业大学人文信息学院 计算机星系工程系 计算机组成原理 期末复习资料 计算机组成原理 一.缩写词解释 CPU:中央处理器 ALU:算术逻辑单元 I/O:输入输出接口 RAM:随机存储器 SRAM: ...

  3. 川师大计算机学院任教老师,全新启航,精彩蜕变——记四川师范大学计算机科学学院2019级新生开学典礼暨2019级新生学籍管理教育...

    朗朗金秋,丹桂飘香,2019级新生迎来了新的启航,即将实现新的精彩蜕变.2019年9月10日下午2:30,四川师范大学计算机科学学院2019级新生开学典礼暨2019级新生学籍管理专题教育在成龙校区学生 ...

  4. 计算机科学与技术见面会报道,计算机科学与技术学院2019级专业见面会顺利召开...

    计算机科学与技术系主任李华昱讲解专业优势 陈格格摄影 软件工程系主任郭磊简析青岛发展潜力 匡欣舒摄影 物联网工程系主任刘新平为学生们讲述未来的六大"出路" 匡欣舒摄影 智能科学系主 ...

  5. 河北工业大学计算机学院考研真题,河北工业大学考研真题汇总

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2021年河北工业大学经济管理学院<870微观经济学>考研全套 2021年河北工业大学经济管理学院<431金融学综合>考研全套 2 ...

  6. 未来计算机研究院,计算人生·智启未来|计算机学院2019级本科生迎新工作圆满完成...

    9月1日-3日,计算机科学与技术学院/人工智能学院迎来了361名2019级本科新生,学院高度重视.精心筹划.积极组织,开展了富有特色的学院迎新工作,包括党团员在内的30余名志愿者活跃在迎新岗位上,保障 ...

  7. java语言程序设计期末复习综合练习题_Java语言程序设计期末复习综合练习题答案...

    Java语言程序设计期末复习综合练习题 一.选择题. 2. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )? A.public stat ...

  8. [渝粤教育] 西南科技大学 高级语言程序设计(Java) 在线考试复习资料

    高级语言程序设计(Java)--在线考试复习资料 一.单选题 1.下列哪一个包给出了Runnable接口的定义?( ) A.iava.util B.java.io C.java.lang D.java ...

  9. 计算机系未来的理想工作,电智学院2019级计算机专业开展专业指导与职业规划报告会...

    为使2019级新生深入了解自己所在专业,电子信息与人工智能学院于2019年11月1日14:00在教三101进行了计算机大类新生专业教育大会.本次大会邀请到校就业指导中心团队张露颖老师,参与此次报告的有 ...

最新文章

  1. log4j按天生成且有按照文件大小分割_论文阅读TGM:轨迹生成
  2. numpy数组如何将数组中的元素批量保留小数(或精确到指定位)?np.around()函数(与np.round()函数等价?)
  3. change to port 80 instead of 8069
  4. 在对人的管理上,项目经理应该做些什么?
  5. UIImage常用的分类
  6. map,存储多个键值对的数据集合
  7. C#宿舍管理系统数据库
  8. 错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
  9. python文件批量重命名以数字~n的方式重命名_利用Python对文件进行批量重命名
  10. ecshop dizcuz会员整合
  11. HNU实验五 小希与火车 基于神经网络的垃圾分类
  12. 微任务,宏任务和Event-Loop
  13. java IDEA 手动替换更新jar包
  14. 恩佐盒子服务器维护,恩佐宝盒有苹果版吗
  15. 一区期刊影响因子 2018 2019
  16. java sync 实现原理_JAVA 同步实现原理
  17. 绿云酒店管理系统 服务器要求,绿云宾馆管理软件-系统基础.doc
  18. 【ES6-阮一峰博客阅读笔记】
  19. TM1640 数码管驱动代码(简化版)
  20. IPC之消息队列(Message Queue)

热门文章

  1. 笔记本外接2K显示器问题记录(集显Intel HD Graphic 3000)
  2. 物联网毕业设计 单片机遥控小车
  3. Softmax、L-Softmax、A-Softmax的整理对比
  4. Java批量导出word压缩后的zip文件
  5. 华清远见22071班10.13
  6. Python程序员爬出百套美女写真集,同样是爬虫,他为何如此突出?
  7. 最容易理解的Raft算法讲解
  8. C++——VS2019调整字体和主题
  9. oracle direct-load,sqlldr direct方式导致索引失效实测
  10. 计算机打印机密码怎么设置,电脑设置了密码打印机打不了怎么办