spring面试题

发布时间 2023-03-28 09:04:06作者: 英俊潇洒的萨克君

1.对IOC的理解

将对象的创建权交由工厂(spring),程序中如果需要对象,从工厂(spring)中获取;

解除类与类之间的耦合

2.对Aop的理解

底层使用的是动态代理;使用配置的方式来完成动态代理要实现的功能。

在不修改源码的基础上,对目标对象中方法进行增强。实现业务之间解耦。

3.切⼊点、通知、连接点、切⾯是什么

切入点:目标对象中要被增强的方法;

通知:要增强的功能;

连接点:目标对象中可以被增强的方法;

切面:切入点和通知的组合

4.springAOP代理方式有几种,怎么配置,实现原理是什么 

springAOP代理方式有几种

JDK动态代理:目标类必须实现一个接口

CGLIB动态代理:目标类不能是最终类

5.spring常用的注解 

1.IOC相关的注解:

1.创建Bean注解:@Component @Service @Repository @Controller

2.依赖注入注解:@Autowired和@Qualifier  @Value

3.作用范围注解:@Scope

4.条件装配:@Conditional

5.配置类和组件扫描:@Configuration   @Bean   @ComponentScan   @Import

6.延迟加载:@Lazy,标注在类上,表示延迟创建bean。第一次使用创建

@Lazy,标注在属性或者方法参数上,先给代理对象

7.配置文件加载:@PropertySource

2.核心

@Order控制Bean的创建顺序

3.事务:

@EnableTransactionManager开启平台事务管理器

@Transactional

4.任务调度,异步

@EnableShaduling   @Schaduled

@EnbaleAync    @Aync

5.切面注解:

@EnableAspectJAutoProxy

6.spring cache相关注解

@EnableCaching

@Cachable

@CacheEvict

@CachePut

6.@Autowied和@Qualifier,@Resource区别 

@Autowird和@Qualifier是spring提供的注解,@Resource是jdk在jsr250中定义的注解

@Autowired: 按照类型注入, 如果IOC容器中有多个bean的类型,和注入的属性类型一致,可能会报错;

判断你的bean是否有加属性autowireCandidate为false,优先排除这些bean;

 在排除后的bean中,看那个bean加了@Primary,优先使用该bean;

 将属性的名称作为bean的id进行注入;

@Autowired + @Qualifier可以根据id注入:

@Autowired    @Qualifier("adUserMapper")

@Resource :  该注解等价于@Autowired + @Qualifier