zoukankan      html  css  js  c++  java
  • spring的特点

    轻量级:

    指的是Spring是“非侵入性”的,耦合内聚你懂吗?spring是“高内聚,低耦合的"就是spring和代码中的其它组件耦合性比较低,引入spring,其它代码并不需要作相应的修改来适应它。打个比方,把项目所有代码比作一桶石灰,如果加入的是油(Spring),因为它和石灰不反应,所以石灰不会变,但如果加入的是水(其它高耦合组件),石灰就会发生化学反应。所以说spring(油)是非侵入性的,水是侵入性会影响其它代码。

     说一下另一个概念”轻量级“,就是指Spring框架在初始化的时候不用加载所有服务,为了节约资源。以前流行的EJB就是”重量级“,每次初始化必须加载所有服务!

    依赖注入:

    ​Spring的一个好处就是不用再用原始的方式new一个对象了,可以由spring容器(相当于是一个j工厂模式)来提供已经创建好的对象,注入到应用程序中就可以了。如果从应用程序的角度看,这就是”控制反转“,把实例化对象的控制权交给应用程序来解决。

    面向切面编程:

    就是Spring的 aop,个人认为这是spring里面最难的一个概念,​大概的理解一下吧,入门级的时候理解个大概意思,等实践的时候你才会知道怎么用的。

    盗来的图

    如上图所示,在应用程序中每个模块都要有它的”日志系统“”事务管理“​”安全认证“,它们交织在一起,如果我们要修改日志的形式,需要修改的代码非常多。

    盗来的图

    ​如果我们使用了aop,输入的数据先进过日志、事务等控制模块,然后再流向实际的业务模块,而日志、事务这些控制模块看起来就像一道切面,切在数据流的中间。所有的数据流都要流经它们。举个粟子吧,一群人小朋友(各个模块)睡觉之前要刷牙(日志系统),洗头(事务管理),洗脚(安全认证),我们可以准备一套牙刷,一个洗头室,一个洗脚盆让他们排除洗(听上去有点不卫生哈哈),让他们排队洗,这样就不用每个人都定制了,公用一下(增加代码重用性)。具体怎么弄,得写代码,这个暂时不详述,大家这里先了解一下就好。

    容器:​

    Spring​容器真的”容器”这个词太形象,容器里面是是Bean,它通过配置文件知道哪些是它管理的bean。一般的对象不能叫bean,只有spring容器初始化,装配和管理的对象才叫bean哦,

    框架:

    Spring​是一个架子,这个架子其实就是xml文件或都说注解,“砖头(各种组件)”都是挂在注解或xml文件上的,这样就组成了一个应用程序。  spring就像一棵树干,其它组件就像树的枝和叶挂在上面。这个树怎么挂怎么嵌都是xml文件和注解规定好的。

    一站式:​

    Spring​上可以挂各种组件,最后变成一个完整的应用程序。这些组件可以是它自己一套的springMVC和springJDBC,也可用外部对应的struts2和mybatis.

  • 相关阅读:
    BEM(Block–Element-Modifier)
    http://element.eleme.io/#/zh-CN/component/quickstart
    Commit message 的写法规范。本文介绍Angular 规范(
    好的commit应该长啥样 https://github.com/torvalds/linux/pull/17#issuecomment-5654674
    代码管理
    if you have content fetched asynchronously on pages where SEO is important, SSR might be necessary
    Martin Fowler’s Active Record design pattern.
    The Zen of Python
    Introspection in Python How to spy on your Python objects Guide to Python introspection
    Object-Oriented Metrics: LCOM 内聚性的度量
  • 原文地址:https://www.cnblogs.com/19322li/p/11050386.html
Copyright © 2011-2022 走看看