Java面试 框架

目录

 

八、Spring

1、什么是Spring框架

2、列举一些重要的Spring模块

3、@RestController 和 @Controller的

4、Spring的好处

5、Spring能帮我们做什么

6、Spring核心容器(应用上下文)模块

7、什么是Springbeans?

8、什么是Spring的内部bean

9、你怎样定义类的作用域

10、什么是bean的自动装配

11、一个SpringBean定义包含什么?

12、一个SpringBeans的定义需要包含什么?

13、解释Spring支持的几种bean的作用域

14、简单介绍一下Springbean的生命周期

15、哪些是重要的bean声明周期方法?你能重载他们吗

16、Spring常用的注入方式有哪些

17、Spring中的bean是线程安全的吗

18、Spring自动装备Bean有哪些方式

19、Spring事务实现方式有哪些

20、说一下Spring的事务隔离

21、Spring运行流程

22、Spring MVC有哪些组件

23、@RequestMapping 的作用是什么?

24、@Autowired的作用是什么

25、BeanFactory与ApplicationContext有什么区别

26、Spring中bean是线程安全的吗

27、你怎样定义类的作用域

28、如何给Spring容器提供配置元数据

29、Spring配置文件

30、什么是SpringIOC容器

31、IOC(依赖注入)的优点是什么?

32、有哪些不同类型的IOC(依赖注入)方式

33、解释不同方式的自动装配

34、在Spring中如何注入一个Java集合

35、对于依赖注入方式,你建议使用构造器注入还是setter方法注入/

36、Spring中的设计模式

37、@Transactional(rollbackFor = Exception.class)注解了解吗

38、Spring中哪几种事务传播行为

39、Spring事务中的隔离级别有哪几种

40、管理实务有几种方式

41、SpringMVC工作原理了解吗

42、对于Spring MVC的了解

43、Spring中bean的生命周期

44、将一个类声明为Spring的bean的注解有哪些

45、@Component 和@Bean的区别是什么

46、Spring的底层实现机制是什么?

47、Spring AOP用到了什么代理

48、Spring的优缺点

49、JDBC和ORM的区别

50、

九、

1、

2、

3、

4、

5、

6、

7、

8、

9、

10、

11、

12、

13、

14、

15、

16、

17、

18、

19、

20、

21、

22、

23、

24、

25、

26、

27、

28、

29、

30、

十、

1、

2、

3、

4、

5、

6、

7、

8、

9、

10、

11、

12、

13、

14、

15、

16、

17、

18、

19、

20、

21、

22、

23、

24、

25、

26、

27、

28、

29、

30、


八、Spring

1、什么是Spring框架

        Spring是一种轻量级开发框架,为了提高开发人员的开发效率以及系统的可维护性

        Spring的核心是控制反转,依赖注入,Aop(面向切面)相当于把每个bean与bean之间的关系交给第三方容器进行管理

        Spring官网列出的Spring的六个特征

                核心技术:依赖注入,AOP,事件,资源,i18n,验证,数据绑定,类型转换,spEl

                测试:模拟对象,TestContext框架,Spring MVC测试,WebTestClient

                数据访问:事务,DAO支持,JDBC,ORM,编组XML

                Web支持:Spring MVC和Spring WebFlux Web框架

                集成:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存

                语言:Kotlin,Groovy,动态语言

2、列举一些重要的Spring模块

        Spring Core:基础,可以说Spring其他所有的功能都需要以来该类库,主要提供IOC依赖注入功能

        Spring Aspects:该模块为与AspectJ的继承提供支持

        Spring AOP:提供了面向切面的编程实现

        Spring JDBC:Java数据库连接

        Spring JMS:Java消息服务

        Spring ORM:用于支持Hibemate等ORM工具

        Spring Web:为胡藏剑Web应用程序提供支持

        Spring Test:提供了对Junit和TestNG测试的支持

3、@RestController 和 @Controller的

        @Controller:返回一个页面

                单独使用 @Controller 不加 @ResponseBody 的话一般使用在主要返回一个视图的情况,这种情况属于比较传统的Spring MVC的应用,对应于前后端 不分离的情况

        @RestController:返回JSON或XML形式数据

                但@RestController只返回对象,对象数据直接以JSON或xml形式写入HTTP相应(Response)中,这种情况属于RESTful Web服务,这也是目前日常开发所接触的最常用的情况(前后端分离)

        @Controller + @ResponseBody 返回JSON或XML形式数据

                如果你需要在Spring4之前开发RESTful服务的话,你需要使用 @Controller并结合@ResponseBody注解,也就是说 @controller + @ResponseBody = @RestController(Spring4之后新加的注解)

4、Spring的好处

        1.轻量级:Spring是轻量的,基本的版本大约2MB

        2.控制反转:Spring通过控制反转实现了松散耦合,对象们给他们的依赖,而不是创建或查找依赖的对象们

        3.面向切面编程(AOP):Spring支持面向切面编程,并且把应用业务逻辑和系统服务分开

        4.容器:Spring包含并管理应用中对象的生命周期和配置

        5.MVC框架:Spring的Web框架是个精心设计的框架,是Web框架的一个很好的替代品

        6.事务管理:Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)

        7.异常处理:Spring提供方便的API把具体技术相关的异常(比如JSBC,JibernateorJDO抛出的)转化为一致的unchecked异常

5、Spring能帮我们做什么

        Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。Spring根据配置文件来进行创建及组装对象间依赖关系,只需要改配置文件即可

        Spring面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制,Spring面向切面编程能提供一种更好的方法来完成,一般通过配置方式,热切不需要再现有代码中添加任何额外代码,现有代码专注业务逻辑

        Spring能非常简单的帮我们管理数据库事务,采用Spring,我们只需获取连接,执行SQL,其他事务相关的都交给Spring来管理了

        Spring还能与第三方数据库访问框架无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问

        Spring还能与第三方Web框架无缝集成,而且自己也提供了一套SpringMVC框架,来方便Web层搭建

        Spring能方便的与JavaEE整合,与更多技术整合

6、Spring核心容器(应用上下文)模块

        这是基本的Spring模块,提供Spring框架的基本功能,BeanFactory是任何以Spring为基础的应用的核心,Spring框架建立在此模块之上

7、什么是Springbeans?

        Springbeas是那些形成Spring应用的主干的Java对象,他们被SpringIOC容器初始化,装配和管理,这些beans通过容器中配置的源数据创建

8、什么是Spring的内部bean

        当一个bean仅被用作另一个bean的属性时,它能被声明为一个内部bean,为了定义innerbean,在Spring的基于XML的配置元数据中,可以在<property/>或<constructor-arg/>元素内使用<bean/>元素,内部bean通常是匿名的,他们的Scope一般是prototype

9、你怎样定义类的作用域

        当定义一个<bean>在Spring里,我们还能给这个bean声明一个作用域。他可以通过bean定义中的scope属性来定义,当Spring要在需要的时候每次生产一个新的bean实例,bean的scope属性被指定为prototype,另一方面 ,一个bean每次使用的时候必须返回同一个实例,这个bean的scope属性必须设为singleton

10、什么是bean的自动装配

        无序在Spring配置文件中描述Javabean之间的依赖关系,IOC容易会自动建立Javabean之间的关联关系

11、一个SpringBean定义包含什么?

        一个SpringBean的定义包含容器必知的所有配置元数据,包括如何创建一个bean,他的生命周期详情及他的依赖

12、一个SpringBeans的定义需要包含什么?

        一个SpringBean的定义包含容器必知的所有配置元数据,包括如何创建一个bean,他的生命周期详情及他的依赖

13、解释Spring支持的几种bean的作用域

        1.singleton:bean在每个Springioc容器中只有一个实例

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

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

        4.session:在一个STTPSession中,一个bean定义对应一个实例,该作用域仅在基于web的SpringApplicationContext情形下有效

        5.global-session:在一个全局的HTTPSession中,一个bean定义对应一个实例,该作用域仅在基于Web的SpringApplicationContext情形下有效。缺省的Springbean的作用域是Singletion

14、简单介绍一下Springbean的生命周期

        bean定义:配置文件里面用<bean></bean>来进行定义

        bean初始化:1.在配置文件中通过指定init-method属性来完成

                               2.实现org.springframwork.beans.factory.InitializingBean接口bean调用

        得到bean实例

        销毁bean:1.使用配置文件指定的destroy-method属性

                           2.实现org.springframwork.beans.factory.DisposeableBean接口

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值