Spring面试题(四)

  1. 说说IOC中的继承和Java继承的区别?
    答:IOC中的继承体现的是一种实例间的关系,而Java继承则是类与类之间的关系。所以IOC中的继承子bean和父bean允许是不同类型的,而Java继承中,子类其实是一种特殊的父类。最后可以得出Java中的继承可以又多态性,而IOC中的继承则不行。

  2. IOC容器自动完成装载,默认的方式是什么?
    答:默认是byType的方式。

  3. 说说@Component, @Controller, @Repository,@Service有何区别?
    答:
    @Component, @Service, @Controller, @Repository都是属于Spring的注解,使用了这些注解后会让Spring扫描它们并把它们加入到IOC容器中。
    @Component是通用注解,@Controller, @Repository,@Service这三个注解都是它的扩展注解。
    @Repository注解用在持久层(Dao)中,可以将数据库操作抛出的原生异常转化为Spring的持久层异常。
    @Service注解用在业务层(Service),没有其他扩展功能,只是做个标识,表示这个类用于处理业务。
    @Controller注解用于控制层(Controller),可以将请求进行转发和重定向。

  4. 说说一个Spring Bean定义包含了什么??
    答:Spring Bean里包含了容器要创建对象所必须的配置元数据,Spring Bean会告诉容器应该怎么创建它,以及它的生命周期详情和它所需的依赖。

  5. 说说Spring支持的事务管理类型?
    答:
    编程式事务管理:通过代码来实现事务,使用起来灵活但是维护起来困难。
    声明式事务管理:将业务代码与事务管理做了分离,通过xml配置或注解的方式来管理事务。

  6. 开发中更倾向用哪种事务管理类型?
    答:相比起编程式事务管理,声明式事务管理虽然少了些灵活性,但是它将业务代码和事务管理做了解耦,对代码的侵入和影响最小,维护起来也更方便,这也是一种面向切面编程的思想体现,所以开发中选择声明式事务管理。

  7. @Required注解有什么用?
    答:@Required注解适用于Bean属性setter方法上,表示受影响的Bean中的属性在配置时是否有被赋予或设置。如果没有,容器则会抛出BeanInitializationException异常。

  8. @Autowired注解有什么用?
    答:使用@Autowired注解,可以通过匹配数据类型(默认的方式)来自动装配Bean,使用起来很灵活,可以自由控制在哪个地方应该装配哪个Bean。

  9. @Qualifier注解有什么用?
    答:@Qualifier这个注解一般是配合@Autowired注解一起使用,比如一个接口有多个实现类,可以通过@Service等注解给实现类加上别名,然后在用@Autowired做自动装配的时候,通过加上@Qualifier(“别名”)的方式,唯一确定要加载的Bean。

  10. @RequestMapping注解有什么用?
    答:通过@RequestMapping注解,能够把相应的请求映射到处理该请求的控制器的类和方法上。

发布了289 篇原创文章 · 获赞 302 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/104715004