spring面试题整理

1.什么是springIOC

  控制反转  他是一种设计思想。把所有写好的bean交给IOC容器来管理,降低了耦合度

2.什么是DI

  依赖注入

  依赖:一个类使用了另一个类的对象,这个类就依赖于另一个类

  依赖注入:将另一个类的对象通过spring特有的方式放到这个类中,供这个类使用,这就是依赖注入

3.springAOP

  面向切面编程,确保了Spring和其他AOP框架的共通性。

  关注点在于切面 实现以解决特定业务问题的方法

  横切关注点是贯穿整个应用程序的关注点,比如日志

  他有五中不同类型的通知 : 

    1.前置通知(使用 @Before 注解使用这个Advice)

    2.返回之后的通知(过 @AfterReturning 关注使用它)

    3.抛出后执行的通知(通用 @AfterThrowing 注解来使用)

    4.后置通知(通过 @After 注解使用)

    5.围绕通知(通过 @Around 注解使用)

  提到AOP就必须要提到代理:

    1.静态代理:在程序运行前就已经存在(优点:方便增加功能,扩展业务逻辑。缺点:增加代码的复杂性,不方便维护。)

    2.动态代理:运用反射机制动态创建而成

4.spring中的bean是否是线程安全?

  spring中的bean是ioc中获取的 ioc中的bean是通过扫描配置文件,读取className,通过反射创建而来的。所以说线程是否安全取决于自己写出的bean是否是线程安全的

5.spring中的bean如何被回收?

  GC回收  在对象不可达的时候就会被回收(在没有被引用的时候就会被回收);但是ioc中的bean默认是单例,他不会被回收

6.spring中的注解

  @Configuration:与在xml中配置bean意义是一样的

  @Value

  @PostConstruct:初始化bean

  @PreDestory:销毁bean 

  创建对象的注解:

    @Controller

    @Service

    @Reponsitory

    @Component

    当出现这些注解说明是交给IOC容器管理的

  @Scope:spring默认是单例的  那么如果想要创建多例 spring提供了一个@Scope注解,该注解决定了是创建多例还是单例

  注入的注解

    @AutoWrite

    @Resource

7.Spring框架支持哪些作用域

  singleton(单例) : bean在每个Spring ioc 容器中只有一个实例。

  prototype:一个bean的定义可以有多个实例。

  request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。

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

  注:Spring bean 的作用域是singleton.

8.spring支持的事务

  编程式事务:灵活性高,难维护

  申明式事务:业务代码和事务管理分离,你只需用注解和XML配置来管理事务

  如果在没有特定的情况下一般用申明式事务,它符合spring的特性,无入侵

 

posted @ 2021-06-24 11:48  陳丶  阅读(80)  评论(0编辑  收藏  举报