一、spring是什么?
二、spring有什么做用
三、spring、springMVC区别
四、spring框架的模块java
spring是什么?
按照网上说的是个容器框架,是什么开发框架,是个..。。
当咱们没有真正去理解spring以前,这些所谓的理论可能都向天书同样枯燥难懂。
那如今咱们来举个栗子吧
全自主研发工厂A中车间接到任务,要生产一辆奥迪A6,那在编程中就得web
1A6 a6=new A6();
复制代码
可是A6有不少零部件组成,好比他须要四个轮胎,因此要spring
1LunTai t1=new LunTail();
2LunTai t2=new LunTail();
3LunTai t3=new LunTail();
4LunTai t4=new LunTail();
复制代码
那轮胎由橡胶制做而成,因此要数据库
1Xiangjiao xj=new Xiangjiao();
复制代码
….
所以,你会发现,造一辆车须要层层嵌套零部件的生产逻辑而成,使得这家工厂须要面面俱到,并且要级级紧扣,每个步骤都须要等待前一个步骤完成,这就形成这个家工厂效率低下,而在Java编程思想中,这就叫作产生了高度耦合。
那工厂要提升效率呢?
这时候有了一家专门生产轮胎等零部件的工厂B向A工厂推销零部件
两个工厂一拍即合:
B工厂代理A工厂的零部件生产
这就变成了:
A工厂须要零部件的时候,就从B工厂直接进货便可编程
1//进货轮胎
2LunTai t1=B.getBean("LunTai");
3//进货玻璃
4BoLi b1=B.getBean("BoLi");
复制代码
因而可知,A工厂就依赖于B工厂的零部件,在这spring的思想里,就是所谓的依赖,也就是说spring是一个容器(B工厂),而咱们的项目(A工厂)须要任何的对象,都是从容器中获取,而不须要关心他是怎么来的。mvc
如今咱们再回过头来看看理论:app
spring是一个容器框架,用来装javabean(java对象),中间层框架(万能胶)能够起一个链接做用,好比说把Struts和hibernate粘合在一块儿运用。简单来讲,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。框架
这时候就容易理解了:spring是一个Java开发框架,他的核心是spring容器,该容器负责管理spring中的java组件的管理工具
1ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-bean.xml")
复制代码
上面的代码就是实例化一个容器而且装载spring-bean.xml中的全部bean组件
当业务须要某个对象时,咱们不在须要new一个对象
而是直接从容器中获取,如spa
1A6 a=ctx.getBean("A6Bean");
复制代码
- 根据配置文件建立及组装对象之间的依赖关系。
- 做为OOP(面向对象编程)的一个补充,spring的AOP(面向切面编程)能对业务代码起到解耦的做用。
- 事务管理再也不须要在业务代码中实现,而是交给spring管理。
- 和其余框架的快速无缝集成。
Spring是一个容器,SpringMVC是一个web框架,是Spring的一个模块
Spring容器:提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
Spring context:Spring的上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
Spring AOP:面向切面编程。
Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不一样数据库供应商抛出的错误消息。异常层次结构简化了错误处理,而且极大地下降了须要编写的异常代码数量(例如打开和关闭链接)。Spring DAO 的面向 JDBC 的异常听从通用的 DAO 异常层次结构。
Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。全部这些都听从 Spring 的通用事务和 DAO 异常层次结构。
Spring Web:Web 上下文模块创建在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。因此,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工做。
Spring MVC :spring提供的一个web框架。
以为本文对你有帮助?请分享给更多人
关注「编程无界」,提高装逼技能