学校网站建站,公司手机网站开发招标书,网站开发服务的协议,主机公园wordpress前言#xff1a; Spring相关的框架知识#xff0c;算是目前公司在用的前沿知识了#xff0c;很重要#xff01;#xff01; 那么以Spring为基础的框架有几个#xff1f; 以Spring为基础的框架包括若干模块#xff0c;其中主要的有Spring Framework、Spring Boot、Spring… 前言 Spring相关的框架知识算是目前公司在用的前沿知识了很重要 那么以Spring为基础的框架有几个 以Spring为基础的框架包括若干模块其中主要的有Spring Framework、Spring Boot、Spring Cloud等。 Spring Framework这是最基础的Spring框架它包括了ioc依赖注入Context上下文、bean管理等功能模块。Spring框架的主要目的就是简化Java后端开发工作它由20个左右不同的模块组成这些模块分别是Test、Core Container核心容器、Data Access/Integration数据访问/集成、Web、AOP/Aspect应用对象解耦、Instrumentation和Messaging检测消息。Spring Boot这个框架的目标是简化Spring应用和服务的创建、开发与部署比如它可以简化配置文件使用嵌入式web服务器含有诸多开箱即用的微服务功能。Spring Cloud它是一系列框架的集合主要用于构建分布式系统提供配置管理、服务发现、断路器、智能路由、微代理、控制总线等功能。 在使用这些框架时可以根据具体的需求来选择性地使用所需要的模块以满足企业级应用开发的需求。 相比于Spring Framework和Spring Cloud而言小编主要着重于Spring Boot框架相关的知识来进行讲解的当然Spring Boot也算是很常见的框架之一了 Servlet痛点分析
添加外部jar不方便容易出错比如添加了一个不匹配的外部jar版本运行和调试的时候需要配置tomcat不方便发布不方便Servlet项目必须依靠外置的tomcat外置的Web容器运行路由配置不方便一个访问地址对应一个Servlet类…………………………
Spring基础与核心概念 官网spring.io 一句话概述Spring包含了众多工具方法的Ioc容器 那么什么是容器 容器是用来容纳某种物品的基本装置如水杯 那么我们之前课程所接触到的容器有哪些 List / Map《——》数据存储容器tomcat《——》Web容器…………………… Ioc全文为Inversion of Control汉语意思为控制反转实际意义为控制(权)反转 那么也就是说Spring是一个“控制反转”的容器 A对象掌握B对象的控制权实列化但由于B对象参数等的改变导致A对象如何控制B对象也会发生相应的变化为解决这一问题将B对象给第三方此时A对象对B对象的控制权转移/交接给第三方这就是控制(权)反转 当最底层发生变化时整个调用链都需要修改——》耦合耦合两个/两个以上的对象相互依赖
接下来我们来通过传统的解法来构造一个“车”吧 接下来我们来看一下相关的代码吧
车轮胎
public class Tire {//车轮胎public int size17;//车身尺寸public Tire (int size){this.sizesize;}public void init(){System.out.println(size -- size);}
}底盘
public class Bottom {//底盘private Tire tire;public Bottom(int size) {tirenew Tire(size);}public void init(){System.out.println(do bottom);tire.init();}
}车身
public class Framework {//车身private Bottom bottom;public Framework(int size){bottomnew Bottom(size);}public void init(){System.out.println(do bottom);bottom.init();}
}车
public class Car {//车private Framework framework;public Car(int size){frameworknew Framework(size);}public void init(){System.out.println(do Car);framework.init();}public static void main(String[] args) {Car carnew Car((20));car.init();}
}上述代码的运行结果为 但是对于上述的代码当我们对其增加一个属性color颜色的时候其相关代码就会发生大幅度的改变其耦合性太高因此我们需要对其解耦操作Ioc高级写法
更改后的代码为
车轮胎
public class Tire2 {//车轮胎public int size17;//车身尺寸private String color红色;public Tire2(int size, String color) {this.size size;this.color color;}public void init(){System.out.println(size -- size color --color);}
}底盘
public class Bottom2 {//底盘private Tire2 tire2;public Bottom2(Tire2 tire2) {this.tire2tire2;}public void init(){System.out.println(do bottom2~~);tire2.init();}
}车身
public class Framework2 {//车身private Bottom2 bottom2;public Framework2(Bottom2 bottom) {this.bottom2 bottom;}public void init(){System.out.println(do framework2~~);bottom2.init();}
}车
public class Car2 {//车private Framework2 framework2;public Car2(Framework2 framework2){this.framework2framework2;}public void init(){System.out.println(do Car2~~~);framework2.init();}}测试类
public class Test {//测试类public static void main(String[] args) {Tire2 tire2new Tire2(20,黑色);Bottom2 bottom2new Bottom2(tire2);Framework2 framework2new Framework2(bottom2);Car2 car2new Car2(framework2);car2.init();}
}那么上述代码的运行结果为 那么经过上述的代码我们可以看出 Ioc不是一个具体的技术它是一个思想控制权转移 Ioc最比较重要的功能解耦 既然Spring是一个Ioc控制反转容器重点还在“容器”二字上那么它就具有两个最基础的功能
将对象存入到容器存对象从容器中取出对象取对象
上面两个是Spring Ioc最核心基础操作 Spring是一个Ioc容器说的是对象的创建和销毁的权利都交给Spring来管理了它本身具备了存储对象和获取对象的能力
那么我们来看一下Spring Ioc的优点
解耦使用更加方便不需要手动创建和关注这个对象背后的依赖关系更加高效