相信大家在使用Springboot使用时候都会见过Spring容器,本文将基于Spring容器为大家做下详细讲解。

【什么是Spring容器】

容器是什么?我们生活中处处可见容器,比如水杯、箱子等等。容器无非就是存储东西的一种器具,重点其实在于被装的东西是啥。

那么Spring容器装的是啥呢?Spring 容器保存与Spring框架相关数据的容器,通常用于保存各种各样的Bean。

我们通常创建一个实例,往往由程序员new出来,这个控制权在于程序员。而Spring容器则将该控制反转,也就是指new实例工作不由程序员来做而是交给Spring容器来做,bean类交给Spring容器统一管理销毁。

【为什么要用Spring容器】

那么问题来了,我们为什么要把Bean交给spring管理?

当我们在使用Spring的bean对象时,会遇到两种情况:

(1)当一个对象被频繁的使用时,对内存资源会有较大的消耗。如果使用Spring管理bean类,由于Spring默认管理bean是单例模式,所以会避免不断的创建新的实例从而导致并发量很大时垃圾回收效率低的问题。但这样样很容易会导致多线程问题。

(2)是当一个对象被使用的次数极少,这个时候就没有必要让这个对象一直存在到内存中,可以将spring管理bean的作用域设置为prototype,在每次调用的时候创建一次 ,用完销毁。

因此,使用Spring管理bean对象可以实现对象对资源的有效使用。

【Spring容器一般管理哪些bean】

由于Spring默认管理bean是单例模式,为了避免多线程导致的并发问题,一般用Spring管理的类是各种Service类。

最常用的spring容器管理的注解有@Controller、@Service、@Repository、@Component、@Bean等。加了以上注解的类,会自动交给Spring容器管理,需要使用时候直接注入获取即可。

Spring容器是什么?为什么要使用Spring容器?相关推荐

  1. 【spring boot2】第8篇:spring boot 中的 servlet 容器及如何使用war包部署

    嵌入式 servlet 容器 在 spring boot 之前的web开发,我们都是把我们的应用部署到 Tomcat 等servelt容器,这些容器一般都会在我们的应用服务器上安装好环境,但是 spr ...

  2. 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题

    IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...

  3. Spring Boot教程(7) – 直观地理解Spring容器

    在你学习Spring之前,你肯定听说过"控制反转"."依赖注入"."上下文"等名词,伴随着这些名词的,是一些冗长晦涩的解释,这些解释并没有什 ...

  4. [Spring实战系列](6)配置Spring IOC容器的Bean

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/SunnyYoona/article/details/50619900 1. 简介 Spring提供了 ...

  5. Spring常用注解 - 使用注解来构造IoC容器

    Spring常用注解 使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan b ...

  6. 请简述什么是spring的ioc和di_小编Spring是什么、spring容器、IOC和DI

    1.Spring (1)Spring是什么? 是一个轻量级的.用来简化企业级应用开发的开发框架. 注: a.简化开发: Spring对常用的api做了简化,比如,使用Spring jdbc来访问数据库 ...

  7. 《Spring技术内幕》——2.3节IoC容器的初始化过程

    2.3 IoC容器的初始化过程 简单来说,IoC容器的初始化是由前面介绍的refresh()方法来启动的,这个方法标志着IoC容器的正式启动.具体来说,这个启动包括BeanDefinition的Res ...

  8. Spring(一)--作用、IOC容器细节、搭配环境、Spring实验

    1.Spring作用:      1.生态体系庞大,全能型选手![springmvc是其一个子模块,jdbcTemplate能直接操作数据库!]      2.将其他组件粘合在一起      比如将S ...

  9. 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程)

    相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...

  10. Spring Boot 容器选择 Undertow 而不是 Tomcat Spring Boot 内嵌容器Unde

    Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动 ...

最新文章

  1. 黑帽与白帽始终有着“差别”
  2. java修饰符重新学习日记一
  3. CodeSmith连接mysql
  4. Exchange日志
  5. CharNet算法详解
  6. 分治法在二叉树遍历中的应用(JAVA)--二叉查找树高度、前序遍历、中序遍历、后序遍
  7. 70个python毕设项目_这10个Python项目很有趣!
  8. 企业统一社会信用代码规则
  9. IPv6在3G网的应用(转)
  10. 去除winrar的弹窗广告方法(亲测有效)
  11. java 动态给数组赋值_java 中 String 数组怎么动态赋值
  12. three.js各种版本的编辑器
  13. vlan的端口隔离及端口优化——“道高一尺魔高一丈”
  14. InputStreamReader和OutputStreamWriter 的区别和用法
  15. 【Matlab 六自由度机器人】关于灵活工作空间与可达工作空间的理解(附MATLAB推导代码)
  16. explaining and harnessing adversarial examples(FGSM)
  17. 十大智能家居系统解决方案
  18. Unity Shader实现图像渐变
  19. Android apk瘦身讲解
  20. 内毒素检测——内毒素检测-LAL显色试剂盒

热门文章

  1. java 退格符,Java退格键
  2. python中怎么打印出表格_Python 表格打印
  3. 登陆163邮箱 验证邮箱帐号密码是否正确
  4. xcode联调设备出现“ ineligible Device”解决
  5. Linux 基础知识总结
  6. 片上总线Wishbone 学习—— 转载请注明出处:http://blog.csdn.net/ce123
  7. HTML之如何在你的网页上放小姐姐图片
  8. Holder 方式的单例
  9. java安全体系:JCA、JCE、JSSE、JAAS
  10. JoyOI1027 木瓜地