Java web框架面试篇——Spring

Spring的主要核心

  • 控制反转(IOC):当需要一个对象时,在传统的java开发模式中,我们要自己去new一个对象,而在Spring开发模式中,这个动作交由Spring容器去做。

  • 依赖注入(DI):依赖注入是指在 Spring IOC 容器创建对象的过程中,将依赖对象的属性通过配置进行注入。

  • 面向切面编程(AOP):在面向对象编程(OOP)的思想中,我们将事务纵向抽象成一个个对象,在面向切面编程中,我们把对象某些相似的地方横向抽象成一个切面,可以在这个切面上做权限验证,日志记录等操作。

Spring Bean生命周期

1.Spring 容器 从 XML 文件中读取 Bean 的定义,并实例化 Bean。

2.Spring 根据 Bean 的定义填充所有的属性。

3.如果 Bean 实现了 BeanNameAware 接口,Spring 传递 bean 的 ID 到 setBeanName 方法。

4.如果 Bean 实现了 BeanFactoryAware 接口, Spring 传递 beanfactory 给 setBeanFactory 方法。

5.如果有任何与 bean 相关联的 BeanPostProcessors,Spring 会在postProcesserBeforeInitialization()方法内调用它们。

6.如果 bean 实现 IntializingBean 了,调用它的 afterPropertySet 方法,如果 bean 声明了初始化方法,调用此初始化方法。

7.如果有 BeanPostProcessors 和 bean 关联,这些 bean 的 postProcessAfterInitialization() 方法将被调用。

8.如果 bean 实现了 DisposableBean,它将调用 destroy()方法。

Spring Bean的作用域

  • singleton:单例模式(默认),在创建容器时就同时自动创建了一个Bean对象。作用域范围是ApplicationContext中。

  • prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例

  • request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效

  • session:对于每次HTTP Session,使用session定义的Bean产生一个新实例。只有在Web应用中使用Spring时,该作用域才有效

配置方式

  1. 在Xml文件中配置

  1. 使用@Scope注解配置

Spring中常用注解

  • @Component注解:泛指,当我们不确定该类是Cotrolle层或是Service层或是其他时,我们可以用这个注解

  • @Respository注解: 标识持久层,数据访问组件,即 DAO 组件

  • @Service注解:标识业务层组件

  • @Controller注解:标识表现层,控制层组件

  • @RequestMapping 是用来处理请求地址映射的注解,可用于类或方法上。

  • @Autowired注解与@Resource注解:两者都可以做bean的注入,不同的是,Resource有两个属性,name和type,它默认是以byName的方式注入,而Autowired则是byType方式注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值