最新整理的100道大厂高频spring面试题( 三 )
28、你建议使用构造方法注入还是Setter注入?可以同时使用构造方法注入和Setter注入 。 最好的解决方案是对强制依赖项使用构造方法注入 , 对可选依赖项使用setter方法注入 。
C.Spring Beans29、Spring beans是什么?Spring bean是构成Spring应用程序主干的Java对象 。 它们由springioc容器实例化、组装和管理 。 这些bean是使用提供给容器的配置元数据创建的 , 例如 , XML中形式定义 。
spring框架中定义的bean是单例bean 。 bean标记中有一个名为“singleton”的属性 , 如果指定为true , 则bean为单例;如果设置为false , 则bean将成为prototype bean 。 默认设置为true 。 所以 , spring框架中的所有bean默认都是单例bean 。
30、Spring bean定义包含什么?Spring bean的定义包含容器如何创建Bean、其生命周期及其依赖关系所需的所有配置元数据 。
31、如何向Spring容器提供配置元数据?向Spring容器提供配置元数据有三种重要方法:
- 基于XML的配置文件
- 基于注解的配置
- 基于Java的配置
33、说明Sprig支持的bean作用域
- singleton:Spring将bean定义的范围限定为每个Spring IOC容器只有一个单实例 。
- prototype:单个bean定义有任意数量的对象实例 。
- request:作用域为一次http请求 , 该作用域仅在基于web的Spring ApplicationContext情形下有效 。
- session:作用域为HTTP Session , 该作用域仅在基于web的Spring ApplicationContext情形下有效 。
- global-session:作用域为全局的HTTP session 。 该作用域也是仅在基于web的Spring ApplicationContext情形下有效 。
34、单例作用域是线程安全的吗?不 , 单例bean在Spring框架中不是线程安全的 。
35、解释Spring Bean的声明周期
- Spring容器 从XML 文件中读取bean的定义 , 并实例化bean 。
- Spring填充bean定义(DI)中指定的所有属性 。
- 如果bean实现了BeanNameAware接口 , spring会将bean的id传递给setBeanName()方法 。
- 如果有任何BeanBeanPostProcessor与该bean关联 , Spring将调用postProcesserBeforeInitialization()方法 。
- 如果bean实现了IntializingBean , 则调用其afterPropertySet()方法 。 如果bean声明了init方法 , 则调用指定的init方法 。
- 如果有任何与bean关联的beanPostProcessor , 则将调用它们的postProcessAfterInitialization()方法 。
- 如果bean实现l了DisposableBean , 它将调用destroy()方法 。
第一个是setup , 当bean加载到容器中时调用它 。 第二个方法是teardown方法 , 当bean从容器中卸载时调用该方法 。
bean标签有两个重要的属性(init-method和destroy-method) , 可以用它们定义自己的自定义初始化和销毁方法 。 还有相应的注解(@PostConstruct和@PreDestroy) 。
37、Spring的内部bean是什么?当一个bean仅被用作另一个bean的属性时 , 它能被声明为一个内部bean , 为了定义内部bean , 在Spring 的 基于XML的 配置元数据中 , 可以在 < property/ >或 < constructor-arg/ > 元素内使用< bean/ > 元素 , 内部bean通常是匿名的 , 它们的作用域一般是prototype 。
38、如何在Spring中注入Java集合?Spring提供以下几种集合的配置元素:
- 类型用于注入一列值 , 允许有相同的值 。
- 类型用于注入一组值 , 不允许有相同的值 。
- 类型用于注入一组键值对 , 键和值都只能为String类型 。
40、什么是Bean自动装配?Spring 容器能够自动装配 自动关联 的bean , 这意味着 , 通过检查BeanFactory的内容 , 而不使用
41、解释不同类型的自动装配自动装配有五种模式 , 可用于指示Spring容器使用autowiring进行依赖注入:
- no:默认的方式是不进行自动装配 , 通过显式设置ref 属性来进行装配 。
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 行业|现在行业内客服托管费用是怎么算的
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 面临|“熟悉的陌生人”不该被边缘化
- 中国|浅谈5G移动通信技术的前世和今生
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面