【翠花带你冲刺大厂】2022经典面试题,每日打卡!

1.mybatis中resultType和resultMap的区别

两者都是返回对象信息。 resultType:基本映射,只有当数据库中的列名和实体类中的属性名一致才可以映射成功。 resultMap:高级映射,当数据库中的列名和实体类中的属性名不一致时,可以定义一个resultmap将其做一个映射关系,一般用于多表联查。

2.mybatis中动态sql的标签种类

循环:foreach 单条件判断:if 多条件判断:choose when otherwise 辅助条件判断:trim where set 创建一个变量:bind

3.什么是IOC,什么是AOP

IOC:控制反转,别名DI,即依赖注入,主要有构造注入,属性注入,方法注入三种依赖注入方式,利用反射的原理将创建对象的权利交给Spring容器,不需要通过new来创建对象,降低了耦合度,易于资源管理。 AOP:面向切面编程,在程序运行时通过代理的方式向目标类织入增强代码,主要有前置增强,后置增强,异常,最终,环绕。

4.@Autowired和@Resource注解的区别

@Autowired:由Spring提供,通过类型实现自动注入,默认情况下依赖的对象不允许为null,如果需要设置,则需将其属性required设为false,如果该注解写在字段上,则不需要写该字段的setter方法。 @Resource:由J2EE提供,通过名称实现自动注入,默认情况下依赖的对象允许为null,如果该注解写在字段上,则不需要写该字段的setter方法。

5.什么是声明式事务

声明式事务是Spring基于AOP,通过配置文件及注解实现的事务管理方式,可以在不改变源程序的情况下,给程序添加事务。声明式事务中包含事务传播,隔离,超时,回滚等相关设置。

6.spring中bean的生命周期

实例化Bean---》Bean的属性填充----》初始化Bean----》销毁Bean spring启动,查找并加载需要被Spring管理的Bean,对其进行实例化。 Bean实例化后对将Bean的引入和值注入到Bean的属性中。

如果Bean实现了BeanNameAware接口的话,Spring将Bean的Id传递给setBeanName()方法如果Bean实现了BeanFactoryAware接口的话,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入如果Bean实现了ApplicationContextAware接口的话,Spring将调用Bean的setApplicationContext()方法,将bean所在应用上下文引用传入进来。如果Bean实现了BeanPostProcessor接口,Spring就将调用他们的postProcessBeforeInitialization()方法。如果Bean 实现了InitializingBean接口,Spring将调用他们的afterPropertiesSet()方法。类似的,如果bean使用init-method声明了初始化方法,该方法也会被调用如果Bean 实现了BeanPostProcessor接口,Spring就将调用他们的postProcessAfterInitialization()方法。

此时,如果Bean已经准备就绪,就可以被应用程序使用了,他们将一直驻留在应用上下文,直到应用上下文被销毁。 如果Bean实现了DisposableBean接口,Spring将调用他的destory()接口方法,同样,如果Bean使用了desrtory-method声明销毁方法,destory()也会被调用。

7.spring中bean是否是线程安全,为什么

不安全,Spring中的Bean没有线程安全策略,从Bean的Scope来看,主要有singleton,prototype,session,request,global-session,主要看单例模式和原型模式, 在单例模式中,IOC容器只有一个对象,所有线程公用一个对象,如果对成员只有调用(调用方法时会在自己线程的工作内存复制需要的变量)没有修改,则不会存在线程安全问题,反之则存在线程安全问题。 在原型模式中,每次使用Bean对象都会创建一个新的对象,因此不存在线程安全问题,如果使用的Bean注入了单例bean,则要考虑是否存在线程安全问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BUG忠实爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值