全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Spring框架中的单例Bean是线程安全的么?

发布时间:2022-08-03 16:57:00
发布人:qyf

Spring 框架

  Spring 框架中的单例 Beans 是线程安全的么?

  Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状态,所以在某种程度上说Spring的单例bean时线程安全的。如果你的bean有多种状态的话,比如view model,就需要自行保证线程安全啦。

  最浅显的解决办法就是将多态bean的作用域由singleton变更为prototype。

  请解释 Spring Bean的自动装配?

  Spring支持IOC,自动装配不用类实例化,直接从bean容器中取。

  1. 配置在xml中

<bean id="employeeDAO" class="com.guor.EmployeeDAOImpl" autowire="byName" />

  2. @Autowired实现自动装配

  如何开启基于注解的自动装配?

  要使用 @Autowired,需要注册 AutowiredAnnotationBeanPostProcessor,可以有以下两种方式来实现:

  引入配置文件中的<bean>下引入 <context:annotation-config>

<beans>
<context:annotation-config />
</beans>

  在bean配置文件中直接引入AutowiredAnnotationBeanPostProcessor

<beans>
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
</beans>

  什么是 Spring Batch?

  spring batch是一个轻量级的、完善的批处理框架,它主要的目的在于帮助企业建立健壮、高效的批处理应用。

  spring batch是Spring的一个子项目,它使用java语言并基于spring框架作为基础开发,使得已经使用Spring框架的开发者或者是企业可以更加容易访问和利用企业服务。

  spring batch提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。

  对大数据量和高性能的批处理任务,spring batch同样提供了高级功能和特性来支持。

  例如:分区功能、远程功能。

  总的来说,spring batch可以支持简单的、复杂的和大数据量的批处理作业。

  Spring Batch业务场景

  ●周期性的提交批处理

  ●把一个任务并行处理

  ●消息驱动应用分级处理

  ●大规模并行批处理

  ●手工或调度使任务失败之后重新启动

  ●有依赖步骤的顺序执行(使用工作流驱动扩展)

  ●处理时跳过部分记录

  ●成批事务:为小批量的或有的存储过程/脚本的场景使用。

  请举例解释@Required 与@Qualifier注解?

  1. @Required注解

  @Required注解应用于bean属性的setter方法,它表明影响的bean属性在配置时必须放在XML配置文件中。

  2. @Qualifier 注解?

  如果在xml中定义了一种类型的多个bean,同时在java注解中又想把其中一个bean对象作为属性,那么此时可以使用@Qualifier加@Autowired来达到这一目的,若不加@Qualifier这个注解,在运行时会出现“ No qualifying bean of type [com.tutorialspoint.Student] is defined: expected single matching bean but found 2: student1,student2”这个异常。

  更多关于“Java培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的好程序员班,高品质课程助力你实现java程序员梦想。

相关文章

Cloud-IDE 是什么?

Cloud-IDE 是什么?

2023-10-14
主机和端系统之间有什么不同?

主机和端系统之间有什么不同?

2023-10-14
进程和线程有什么联系和区别?

进程和线程有什么联系和区别?

2023-10-14
结束任务管理器快捷键是什么?

结束任务管理器快捷键是什么?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取