java开发岗高频面试题全解析,牛客网java开发高频面试题
如何解决写爬虫IP受阻的问题?立即使用。
1.使用Spring框架有什么好处?
(更多面试问题推荐:java面试问答)
轻量级:Spring是轻量级的,基础版2MB左右。
控制反转:Spring通过控制反转实现松耦合,对象给出它们的依赖关系,而不是创建或寻找依赖对象。
面向方面编程(AOP):Spring支持面向方面编程,并将应用程序业务逻辑与系统服务分离。
容器:Spring包含并管理应用程序中对象的生命周期和配置。
MVC框架:Spring的Web框架是一个设计良好的框架,是WEB框架的良好替代品。
事务管理:Spring提供了一个连续的事务管理接口,可以从本地事务扩展到全局事务(JTA)。
异常处理:Spring提供了一个方便的API,将特定的技术相关异常(比如JDBC、Hibernate或JDO抛出的异常)转换成一致的未检查异常。
2.ApplicationContext的通常实现是什么?
FileXmlApplicationContext:该容器从XML文件加载Bean的定义,并且必须向其构造函数提供XML Bean配置文件的完整路径名。
ClassPathXmlApplicationContext:该容器还从XML文件中加载beans的定义。这里,您需要正确地设置类路径,因为这个容器将在类路径中查找bean配置。
WebXmlApplicationContext:该容器加载一个XML文件,该文件定义了WEB应用程序的所有bean。
3.什么是Spring的依赖注入?依赖注入的方法有哪些?
依赖注入是IOC的一个方面,是一个常见的概念,有很多解释。这个概念意味着你不必创建一个对象,而只需要描述它是如何被创建的。你不直接在代码中组装你的组件和服务,而是要在配置文件中描述哪些组件需要哪些服务,然后由一个容器(IOC容器)负责组装。
构造函数依赖注入:构造函数依赖注入是通过容器用一系列参数触发一个类的构造函数来实现的,每个参数代表对其他类的依赖。
setter方法注入:setter方法注入是指容器通过调用无参数构造函数或无参数静态工厂方法实例化bean后,调用bean的Setter方法,即实现了基于Setter的依赖注入。
4.春豆是什么?
Spring beans是构成Spring应用程序主干的java对象。它们由Spring IOC容器进行初始化、组装和管理。这些beans是由容器中配置的元数据创建的。比如在XML文件中以bean/的形式定义。
Spring框架定义的bean都是单件的bean。bean标记中有一个属性“singleton”。如果设置为TRUE,则该bean是单例bean,否则它是原型bean。默认情况下为TRUE,所以Spring框架中的所有beans默认情况下都是单例的。
5.解释Spring支持的几种bean的范围。
Spring framework支持以下五种bean作用域:
Singleton: bean在每个Spring ioc容器中只有一个实例。
原型:bean的定义可以有多个实例。
请求:每个http请求都会创建一个bean,这个作用域只在基于web的Spring ApplicationContext的情况下有效。
会话:在HTTP会话中,一个bean定义对应一个实例。此范围仅在基于web的Spring ApplicationContext的情况下有效。
全局会话:在全局HTTP会话中,一个bean定义对应于一个实例。此范围仅在基于web的Spring ApplicationContext的情况下有效。
Spring bean的默认范围是Singleton。
(视频教程推荐:java课程)
6.解释Spring框架中bean的生命周期。
Spring容器从XML文件中读取bean定义,并实例化bean。
Spring根据bean的定义填充所有属性。
如果bean实现了BeanNameAware接口,Spring会将bean的ID传递给setBeanName方法。
如果Bean实现了BeanFactoryAware接口,Spring会将beanfactory传递给setBeanFactory方法。
如果有任何BeanPostProcessors与bean相关联,Spring将在postprocesserbeforeininitial ization()方法中调用它们。
如果Bean实现了IntializingBean,则调用其afterPropertySet方法,如果bean声明了初始化方法,则调用此初始化方法。
如果BeanPostProcessors和bean相关联,将调用这些bean的postProcessAfterInitialization()方法。
如果bean实现DisposableBean,它将调用destroy()方法。
7.如何在Spring中注入一个java集合?
Spring提供了以下集合的配置元素:
列表类型用于注入值列表,允许相同的值。
Set type用于注入一组值,不允许相同的值。
Map type用于注入一组键-值对,键和值可以是任何类型。
Props类型用于注入一组键-值对,键和值都只能是String类型。
8.解释不同的自动装配方式。
自动组装有五种方式,通过自动组装来引导Spring容器注入依赖关系。
否:默认方式是在没有自动组装的情况下进行组装,并通过显式设置ref属性来进行组装。
byname:通过参数名的自动组装,Spring容器发现bean的autowire属性在配置文件中被设置为ByName,然后容器试图匹配并组装与bean的属性同名的bean。
byType:通过参数类型自动组装,Spring容器发现bean的autowire属性在配置文件中被设置为ByType,然后容器尝试将bean与bean的属性匹配组装成相同的类型。如果有多个bean符合条件,则会引发错误。
构造函数:这种方法类似于byType,但是如果要提供构造函数参数,如果没有明确的带参数的构造函数参数类型,就会抛出异常。
Autodetect:先尝试用构造函数自动组装,如果不行就用byType。
9.Spring框架的事务管理有什么优势?
它为JTA、JDBC、Hibernate、JPA和JDO等不同的事务API提供了一种恒定的编程模式。
它为编程事务管理提供了一组简单的API,而不是一些复杂的事务API,如
它支持声明式事务管理。
它与Spring的各种数据访问抽象层集成得很好。
10.什么是基于Java的Spring注释配置?举一些带注释的例子。
基于Java的配置允许您在一些Java注释而不是XML文件的帮助下完成大多数Spring配置。
以@Configuration注释为例。它用于标记一个类可以被Spring IOC容器用作bean的定义。另一个例子是@Bean注释,它表明这个方法将返回一个对象,并在Spring应用程序上下文中将它注册为一个Bean。
相关教程推荐:java入门教程以上是java高频基础面试问题3354(七)的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。