JavaEE框架期末复习整理

概念题 

什么是事务,事务有哪些属性,分别代表什么含义。

  •  事务是数据库特有的术语,表示单个逻辑工作单元执行的一系列操作。用于在同步发生数据更新时,防止数据的不一致性。
  •  事务的四个属性(ACID特性)
  1. 原子性:事务是由一个原子操作,由一系列动作组成,事务的原子性确保动作要么全部完成要么完全不起作用。
  2. 一致性:一旦所有事务动作完成,事务就被提交,数据和资源就处于一种满足业务规则的一致性状态中。
  3. 隔离性:可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。
  4. 持久性:事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中。

Spring中和事务相关的注解是哪个,如何指定异常类型如何配置,如何指定隔离级别。

  • 使用@Transactional配置事务增强功能

  • 使用PlatformTransactionManager事务管理器接口 指定异常类型

  • 使用TransactionDefinition事务属性接口 指定隔离级别

了解SpringMVC原理,核心Servlet是哪个?

  •  原理:
  1. 用户通过浏览器 向服务器发送请求,请求会被SpringMVC的前端控制器DispatcherServlet所拦截;
  2. DispatcherServlet拦截达到请求后,会调用处理器映射器HandlerMapper;
  3. 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器,一并返还给DispatcherServlet;
  4. DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器);
  5. HandlerAdapter会调用并执行Handler(处理器),即所编写的Controller类,又称为后端控制器;
  6. Controler执行完后,会返回一个ModleAndView对象,其中包含视图名或模型和视图名;
  7. HandlerAdapter将ModleAndView对象返回给DispatcherServlet;
  8. DispatcherServlet会根据ModleAndView对象选择一个合适的ViewReslover(视图解析器);
  9. ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图);
  10. DispatcherServlet会对View进行渲染(即将模型数据填充至视图中);
  11. 视图渲染结果会返回给客户端浏览器显示。
  • 前端控制器DispatcherServlet

MyBatis有那些事务管理方式?

  • MyBatis的事务管理分为两种形式:
  1. 使用JDBC的事务管理机制。这种机制就是利用java.sql.Connection对象完成对事务的提交
  2. 使用MANAGED的事务管理机制。这种机制mybatis自身不会去实现事务管理,而是让程序的Web容器或者Spring容器来实现对事务的管理。

SpringMVC拦截器是什么,它有哪些方法,分别代表什么含义?

  • SpringMVC中提供了Interceptor拦截器,用于拦截用户的请求并进行相应的处理,如权限认证、判断用户是否登录等。
    SpringMVC拦截器是一种可插拔的设计,当需要使用某个拦截器时,只需要在配置文件中应用该拦截器即可;当不需要该拦截器时,取消文件中的配置。
    不管是否应用某个拦截器,对SpringMVC框架不会有任何影响。
  1. SpringMVC中的拦截器是通过实现HandlerInterceptor接口或继承HandlerInterceptorAdapter抽象类来完成的。
    HandlerInterceptor接口中定义了以下三个方法,对用户的请求进行拦截处理:
    perHandle():在请求处理之前被调用;
  2. postHandle():当perHandle()方法返回true时,且在Controller方法被调用之后被调用;
  3. afterCompletion():当perHandle()方法返回true时,且整个请求结束之后(即DispatcherServlet完成视图渲染之后)被执行。

如何配置MapperFactoryBean

  • <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
      <property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />
      <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>

     

配置SpringMVC的时候需要指定配置文件路径,在web.xml中如何配置?

  • <!-- 指定spring的配置文件 -->
    <context-param>  
    <param-name>contextConfigLocation</param-name>  
    <param-value>classpath:spring-config.xml</param-value>
    </context-param>

     

MultipartFile有哪些方法,每个方法的含义是什么?例如哪个方法用于读取原始文件名?

  • MultipartFile类提供了上传文件内容、文件名等方法,具体如下:
  1. getBytes():获取文件数据
  2. getContentType():获取文件MIME类型
  3. getInputStream():获取文件流
  4. getOriginalFilename():获取上传文件的原名(读取原始文件名)
  5. getSize():获取文件的字节大小
  6. isEmpty():判断是否有上传文件
  7. transferTo(File dest):将上传文件保存到一个目标文件中

MyBatis中会话类,执行增删改查的方法分别是什么?

  • SqlSession常用方法
  1. int insert()
  2. int delete()
  3. void select()
  4. int update()

MyBatis动态SQL有哪些?分别代表什么?

  • MyBatis 3 采用基于OGNL表达式来完成动态sql,精简了动态sql所需的元素。
  1. <if>:判断语句,用于单条件分支判断
  2. <choose>(<when>、<otherwise>):多条件分支判断,相当于Java中的switch...case...default语句
  3. <where>、<trim>、<set>:辅助元素,用于处理SQL拼表、特殊字符问题
  4. <foreach>:循环语句,常用于int语句等列举条件中
  5. <bind>:从OGNL表达式中创建一个变量,并将其绑定到上下文,常用于模糊查询的SQL中

依赖注入的2种注入方式是什么?他们各有什么特点?

  1. 属性注入(setter方法注入):
    (1)通过setter方法注入依赖的值或对象。
    (2)具有高度灵活性。
    (3)要求Bean提供一个默认的构造参数,并提供对应的setter方法。
    (4)使用反射机制注入。
    (5)属性注入是实际应用中最常用的注入方式。
  2. 构造器注入:
    (1)通过有参的构造函数注入。
    (2)Bean中包含必须赋值属性或对赋值顺序有要求时,使用setter方法注入可能会造成错
    误,此时使用构造方法注入。
    (3)使用构造方法注入可以保证IOC容器提供的Bean实例一定是可用的。

AOP中的8个关键术语

  • 切面(Aspect)
  1. 切面是指封装横切到系统功能(如事务处理)的类。
  • 连接点(Joinpoint)
  1. 连接点是指程序运行中的一些时间点,如方法的调用或异常的抛出。
  • 切入点(Pointcut)
  1. 切入点是指那些需要处理的连接点。在Spring AOP中,所有的方法执行都是连接点,而切入点是一个描述信息,它修饰的是连接点,通过切入点确定哪些连接点需要被处理。
  • 通知/增强处理(Advice)
  1. 由切面添加到特定的连接点(满足切入点规则)的一段代码,即在定义好的切入点处所要执行的程序代码。可以将其理解为切面开启后,切面的方法。因此,通知是切面的具体实现。
  • 引入(Introduction)
  1. 允许在现有实现类中添加自定义的方法和属性。
  • 目标对象(Target Object)
  1. 目标对象是指所有被通知的对象。
  • 代理对象(Proxy Object)
  1. 代理对象,是指,通知应用到目标对象之后,被动态创建的对象。
  • 织入(Weaving)
  1. 织入,是指,将切面代码插入到目标对象上,从而生成代理对象的过程。

?Spring格式化接口和转换器接口有哪些,要知道其基本含义。

  • Formatter格式化不仅仅SpringMVC场景使用,还通用于Spring场景;在org.springframework.format包中定义的接口如下:
  1. Printer<T>接口:格式化显示接口
  2. Parser<T>接口:解析接口
  3. Formatter<T>接口:格式化接口
  4. FormatterRegister接口:注册格式化转换器
  5. AnnotationFormatterFactory<A extends Annotation>接口:注解方式的格式工厂
  • ConversionService是Spring类型转换体系中的核心接口

?Java和Spring中,有哪些线程池类?写出各个线程池类的配置参数的概念。

?Bean注入的时候,在使用字面值、对象、集合等类型的时候,如何定义,在Java和配置文件中如何定义。

?Spring线程池的拒绝策略是什么,默认有哪些可用的策略类型,分别是什么含义?

?Spring自动装配中有哪2中注入方式或者注解类,它们的相同点和不同点是什么?

SpringMVC数据绑定的概念是什么,使用什么步骤进行数据绑定。

  • 在执行程序时,SpringMVC会根据客户端请求参数的不同,将请求信息以一定的方式转换并绑定到Controller的请求处理方法的参数中,该过程称为SpringMVC的数据绑定。
  • 数据绑定过程的步骤如下:
  1. SpringMVC将ServletRequest对象传递给DataBinder;
  2. 将处理方法中的入参对象传递给DataBinder;
  3. DataBinder调用ConversionService组件进行数据类型转换、数据格式化等操作,最终将ServletRequest对象中的数据填充到参数对象中;
  4. 调用Validator组件对已绑定了请求数据的参数对象进行合法性校验;
  5. 检验完成后,会生成一个数据绑定结果对象BindingResult,SpringMVC会将BindingResult对象中的内容赋给处理方法的相应参数。

?SpringMVC实现本地化/国际化,用了几种方式,分别是什么含义,怎么实现的?

  • 基于浏览器请求的国际化实现
  • 基于HttpSession的国际化实现

  • 基于Cookie的国际化实现

MyBatis关联使用哪个元素?这个元素有哪些属性,这些属性的含义要清楚。

  • MyBatis通过<association>元素处理一对一关联管理
    <association>元素具有以下属性:
  1. property:指定映射到实体类对象属性,与表字段一一对应
  2. column:指定表中对应的字段
  3. javaType:指定映射到实体对象属性的类型
  4. select:指定引入嵌套查询的子SQL语句,用于关联映射中的嵌套查询
  5. fetchType:指定在关联查询时是否启用延迟加载,取值为lazy或eager
  • MyBatis通过<collection>元素处理一对多关联管理
    <collection>元素具有以下属性:
  1. property:指定映射到实体类对象属性,与表字段一一对应
  2. column:指定表中对应的字段
  3. ofType:指定映射到实体对象属性的类型
  4. select:指定引入嵌套查询的子SQL语句,用于关联映射中的嵌套查询
  5. 指定在关联查询时是否启用延迟加载,取值为lazy或eager

编程题

写一个学生类或者教师类,然后创建一个Spring配置文件,在里面配置几个bean,注意bean声明的时候的各个属性名称以及类型的package路径。然后在Java代码的main方法中写出。

 

  • 7
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值