微服务:Spring Boot第一篇——什么是Spring

因为公司业务需要,先把可视化的部分放一放,来研究微服务架构。

微服务目前技术选型是Spring Cloud,而Spring Cloud又以Spring Boot为基础,Spring Boot又是为了简化Spring繁琐的配置而出现的,Spring的出现又是为了替代臃肿的EJB,而EJB又是为了让JAVA语言能够更好的服务于企业级开发提出的。这样的一套历史发展轨迹走下来,感觉这个东西真的是繁杂冗长,从JAVA过来一路缝缝补补,如果一个新人想要学习Spring Boot还要把之前的所有知识都看一遍,这样下来就算花个半年时间也只能搞个一知半解。不由想起了本科时候写的SSH,项目交了之后自己都不忍心看,各种配置乱七八糟,感觉一碰就会出BUG.现在的Spring Boot简化了很多配置,比SSH时代要好了很多,不过和Django这种框架比起来还是笨重了不少。不过可能因为历史发展比较长,使用的人多,一直有人在试图让这些以Java为基础的工具越来越好用。用轮子总比造轮子方便,Spring Boot和微服务中使用到的各种技术都是轮子,所以我对轮子的理解准备到“什么样的车用什么样的轮子”、“什么形状的轮子走起来快”这种层面,不会到“轮子能向前走是因为摩擦力的原因,前轮向后后轮向前”这样深刻。

什么是Spring?Spring诞生于黑暗的EJB1.0时代,在那个时代做J2EE的开发真的是噩梦,Spring就是为了让Java开发体系更加高效,引入了Spring IOC、AOP、Dependency Injection、Annotation等方法的轻量级框架。了解这些东西的原理,只为了让自己心里有个底,其实Spring这些特性,总结成软件工程术语看起来很费劲的,但实际应用中已经是比较普遍的思想了。

上面这张图需要理解的有几个地方:

  1. Spring Core:他主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。下面会介绍Bean和IOC的概念。
  2. Spring ORM:对象关系映射,简单的讲就是把数据库里面的表映射为程序中的对象,使代码上面的操作可以直接不用写SQL语句,直接操作数据库。
  3. Spring Web MVC:其实MVC的结构很早就出现了,也是比较常见的代码结构,不懂得同学百度一下吧。

还有几个比较重要,或者说经常遇到的概念。

控制反转(Inversion of Control):听起来好像一个很复杂又巧妙的方法,其实就是把对象间的依赖关系改变了一下。在以前的编码方式里,我们想创建一个包含低级组件的对象,首先会考虑这个低级组件中的属性,把这个低级组件设计出来之后,再来设计高级组件。比如我们需要设计一个汽车,从低级的轮子开始,然后构造底盘,车身,一件一件向上,如果需要修改某一个低层组件,往往需要同时修改依赖它的所有高层组件;假如把这种依赖关系翻转一下,让低层依赖高层,那么对低层组建的修改不会影响高层组件。依赖注入(Dependency Injection)就是把低层组件对象作为参数传递入高层组件中,等于高层组件在执行自己的方法时会告诉Spring自己需要这个低层组件,Spring会根据配置文件进行一系列初始化,这样有更好的灵活性。简而言之,控制反转把依赖方式改变为从上层到下层,而依赖注入就是Spring实现这件事的方式。

JavaBean的概念:JavaBean是一种规范,规范一,必须有一个public属性的无参数构造函数,这是为了方便实例化对象;规范二,属性可以通过get、set方法访问,为了获取和设置字段的值,并提高代码通用性;规范三,需要实现 java.io.Serializable 接口,这是为了方便传输和存储对象。

注解(Annotation):按照我的理解就是一个以@开头的关键字,这个关键字能通过其他文件影响程序的运行方式或者过程。以后再Spring Boot中还会遇到,到时候再对照例子来理解吧。


Spring的理解就先到这里吧,肯定有很多没有涉及到的,后续如果有需求再学习。

猜你喜欢

转载自blog.csdn.net/roll_jj/article/details/76184197