javaEE框架简答题

1. Spring的属性注入和构造方法注入的特点
  • 属性注入(setter方法注入):
    1.通过setter方法注入依赖的值或对象。
    2.具有高度灵活性。
    3.要求Bean提供一个默认的构造函数,并提供对应的setter方法
    4.适用反射机制注入。
    5.属性注入是实际应用中最常用的注入方式。
  • 构造器注入:
    1.通过有参的构造函数注入。
    2.Bean中包含必须赋值属性或对赋值顺序有要求时,使用setter方法注入可能会造成错误,此时使用构造方法注入。
    3.使用构造方法注入可以保证IOC容器提供的Bean实例一定是可用的。
2. AOP概念
  • AOP采取横向抽取机制,即将分散在各个方法中的重复的代码提取出来,然后在程序编译或运行阶段,再将这些抽取出来的代码应用到需要执行的地方。这种横向抽取机制,采用传统的OOP是无法办到的,因为OOP实现的是父子关系的纵向重用。但是AOP不是OOP的替代品,而是OOP的补充,它们相辅相成。
3. Spring提供了3种类型的转换器接口,解释其含义

在org.springframework.core.convert.conerter包中,Spring提供了三种类型的转换器接口,通过实现其中任意一个接口来自定义转换器,并将自定义转换器注册到ConversionServiceFactoryBean中即可。

  • Converter<S,T>接口是Spring中最简单的一种转换接口,该接口中只有一个convert()方法。
  • ConvertFactory<S,R>接口将相同系列的多个Converter封装在一起,来实现将一种类型转换为另一种类型或子类对象,例如将String转换为Number或Integer、Double(Number子类)等类型的对象。
  • GenericConverter接口用于在两个或多个类型之间转换,该接口比较灵活,支持在多个源/目标类型对之间转换;在类型转换过程中,可以访问源/目标的上下文信息。
4. 数据库表之间的3种关系,描述其含义
  • 一对一
  • 一对多
  • 多对多
5. 描述Spring项目开发环境的基本搭建步骤
  1. 下载Spring开发所需基础jar包
  2. 创建Maven Web项目
  3. 在pom.xml中添加spring依赖的jar
  4. 创建Spring配置文件applicationContext.xml
  5. 创建接口TestDao
  6. 创建接口TestDao的实现类TestDaoImpl
  7. 在applicationContext.xml文件中配置bean
  8. 创建测试类,启动运行
6. SpringMVC解决PUT请求方式的方法
  • 方法一:直接发送post请求
  • 方法二:在web.xml添加
    在web.xml文件中配置上过滤器
<!-- 解决无法直接发送PUT请求,带着请求体的问题,在修改信息的时候使用 -->
	<filter>
		<filter-name>HttpPutFormContentFilter</filter-name>
		<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>HttpPutFormContentFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
7. MyBatis的根元素,8个,含义解释
  • cache – 该命名空间的缓存配置。
  • cache-ref – 引用其它命名空间的缓存配置。
  • resultMap – 描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素。
  • sql – 可被其它语句引用的可重用语句块。
  • insert – 映射插入语句。
  • update – 映射更新语句。
  • delete – 映射删除语句。
  • select – 映射查询语句。
    https://mybatis.org/mybatis-3/zh/sqlmap-xml.html
8. Spring的ThreadPoolTaskExecutor类配置项,解释含义
  • corePoolSize:核心线程数,即线程池维护的最少线程数量,默认值1.
  • maxPoolSize:最大的线程数量,启动的总的线程数不能大于maxPoolSize,默认值Integer.MAX_VALUE。
  • queueCapacity:缓冲队列的最大长度,当正在执行的线程数量达到corePoolSize时,新任务首先加入缓冲队列,如果队列已满并且线程数量未达到maxPoolSize,则创建新的线程执行任务。
  • keepAliveSeconds:线程保持活动时间(毫秒),超过这个时间后将大于corePoolSize的线程关闭。
  • rejectedExecutionHandler:新任务被线程池拒绝后的具体操作。
9. bind的用法

https://mybatis.org/mybatis-3/zh/dynamic-sql.html

10. InternalResourceViewResolver的用法 看代码

https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/htmlsingle/#mvc-viewresolver-chaining

11. @Controller用法 参考代码进行变通

https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/htmlsingle/#mvc-controller
https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/htmlsingle/#mvc-ann-requestmapping

12. @Autowired的用法,如何引用服务 参考代码进行变通

https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/htmlsingle/#beans-autowired-annotation

13. Spring标签本地化
14. @Controller中如何相应JSON请求

在Controller中对JSON数据请求进行处理时,需要用到以下两个注解:

  • @RequestBody:用于将请求体中的数据绑定到方法的形参中
  • @ResponseBody:直接返回一个对象或集合
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值