首页 > 其他分享 >spring是什么?你真的了解嘛

spring是什么?你真的了解嘛

时间:2023-06-29 19:44:05浏览次数:37  
标签:容器 框架 Spring 工厂 了解 spring new 真的

摘要

1、spring是什么?

2、spring有什么作用

3、spring、springMVC区别

4、spring框架的模块

1、spring是什么?

spring是什么?

按照网上说的是个容器框架,是什么开发框架,是个……

当我们没有真正去理解spring之前,这些所谓的理论可能都向天书一样枯燥难懂。

那现在我们来举个栗子吧

全自主研发工厂A中车间接到任务,要生产一辆奥迪A6,那在编程中就得

 A6 a6=new A6();

  

但是A6有很多零部件组成,比如他需要四个轮胎,所以要

1 LunTai t1=new LunTail();
2 LunTai t2=new LunTail();
3 LunTai t3=new LunTail();
4 LunTai t4=new LunTail();

  

那轮胎由橡胶制作而成,所以要

1 Xiangjiao xj=new Xiangjiao();

  

……

因此,你会发现,造一辆车需要层层嵌套零部件的生产逻辑而成,使得这家工厂需要面面俱到,而且要级级紧扣,每一个步骤都需要等待前一个步骤完成,这就造成这个家工厂效率低下,而在Java编程思想中,这就叫做产生了高度耦合。

那工厂要提高效率呢?

这时候有了一家专门生产轮胎等零部件的工厂B向A工厂推销零部件

两个工厂一拍即合:

B工厂代理A工厂的零部件生产

这就变成了:

A工厂需要零部件的时候,就从B工厂直接进货即可

1 //进货轮胎
2 LunTai t1=B.getBean("LunTai");
3 //进货玻璃
4 BoLi b1=B.getBean("BoLi");

  

由此可见,A工厂就依赖于B工厂的零部件,在这spring的思想里,就是所谓的依赖,也就是说spring是一个容器(B工厂),而我们的项目(A工厂)需要任何的对象,都是从容器中获取,而不需要关心他是怎么来的。

现在我们再回过头来看看理论:

spring是一个容器框架,用来装javabean(java对象),中间层框架(万能胶)可以起一个连接作用,比如说把Struts和hibernate粘合在一起运用。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

这时候就容易理解了:spring是一个Java开发框架,他的核心是spring容器,该容器负责管理spring中的java组件的管理

1 ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-bean.xml")

  

上面的代码就是实例化一个容器并且装载spring-bean.xml中的所有bean组件当业务需要某个对象时,我们不在需要new一个对象而是直接从容器中获取,如

1 A6 a=ctx.getBean("A6Bean");

  

2、spring有什么作用?

  1. 根据配置文件创建及组装对象之间的依赖关系。作为OOP(面向对象编程)的一个补充,spring的AOP(面向切面编程)能对业务代码起到解耦的作用。事务管理不再需要在业务代码中实现,而是交给spring管理。和其他框架的快速无缝集成。

3、spring、springMVC区别

Spring是一个容器,SpringMVC是一个web框架,是Spring的一个模块

4、spring框架的模块

  1. Spring容器:提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
  2. Spring context:Spring的上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
  3. Spring AOP:面向切面编程。
  4. Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
  5. Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
  6. Spring Web:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
  7. Spring MVC :spring提供的一个web框架。

标签:容器,框架,Spring,工厂,了解,spring,new,真的
From: https://www.cnblogs.com/nifrecxgh/p/17515049.html

相关文章

  • Springboot配置优先级
    #图片来自转载最后的优先级就是:命令行参数>java系统属性>application.properties>application.yml>application.yaml......
  • Springboot配置优先级
    #图片来自转载最后的优先级就是:命令行参数>java系统属性>application.properties>application.yml>application.yaml......
  • SpringBoot整合 Camunda 流程引擎
    目录1整合Camunda流程引擎1.1简介1.1.1概念介绍1.1.2组件介绍1.2Springboot集成1.2.1pom.xml1.2.2配置文件1.2.3数据库1.2.4登录界面1.3绘制流程图1.3.1下载安装1.3.2绘制1.3.2.1任务分类1.3.2.2网关1.3.2.3指定key1.3.3集成在idea中1.3.4引入项目测试1整合......
  • Spring Security实现多用户系统登录
    由于管理层的突发奇想,硬要把我负责的系统塞到其他的项目中去,而系统之间的用户系统又不同,如果要合并到一起,那改动将是非常大,于是就产生这个多用户系统登录的问题。因为userDetailService是通过用户名来查找用户信息的,所以具体实现得通过多个userDetailService提供用户信息,每个用户......
  • spring某些类只有在prod环境生效
    spring某些类只有在prod环境生效并加载bean@Profile("prod")//只有prod的profile环境下,spring才会加载bean到容器中过去@Component@Slf4j@Profile("prod")publicclassUmpAlarmMqConsumerimplementsIStoppable,InitializingBean{ @Override publicvoidstop(Strin......
  • 带有 Spring Boot 后端的 Vue.js 前端
    概述在开始本教程中,先推荐1个SpringBoot+Vue前后端分离Java项目,本项目是一个大型互联网金融项目,采用SpringBoot,Dubbo微服务的架构,包括多个独立的微服务,micr-common个公共服务,micr-web服务,micr-database数据库服务,micr-pay支付服务,micr-task定时任务。前端技术栈:Vue,Java......
  • springboot整合mybatis
    1,在application.yml中配置点击查看代码#mybatis#配置mapper路径mybatis:mapper-locations:classpath:mapper/*.xml2,在每个DAO接口上面追加@Mapper注解-------------------------------------------------------------增删改查的实现代码application.yml配......
  • springboot 通用限流方案设计与实现
    一、背景限流对于一个微服务架构系统来说具有非常重要的意义,否则其中的某个微服务将成为整个系统隐藏的雪崩因素,为什么这么说?举例来讲,某个SAAS平台有100多个微服务应用,但是作为底层的某个或某几个应用来说,将会被所有上层应用频繁调用,业务高峰期时,如果底层应用不做限流处理,该应用......
  • SpringBoot 2 种方式快速实现分库分表,轻松拿捏!
    大家好,我是小富~(一)好好的系统,为什么要分库分表?(二)分库分表的21条法则,hold住!本文是《分库分表ShardingSphere5.x原理与实战》系列的第三篇文章,本文将为您介绍ShardingSphere的一些基础特性和架构组成,以及在Springboot环境下通过JAVA编码和Yml配置两种方式快速实现分库......
  • 经验,真的是你的核心竞争力吗?
    该篇文章与视频是早在ITPub发布的,如今同步过来,视频与文字都下方,大家可以选择方便方式进行阅读观看。大家好,我是陈珙,今天我想跟大家聊聊技术人的核心竞争力问题。提到这,我先问大家几个问题,在职场发展方面,你是否曾经有过焦虑、担忧?例如说,你曾经是否怕被新人卷或者代......