Spring-Spring概述


Spring 和 Spring Boot 概要

  1. Spring核心是提供一个容器(container),即Spring application context(Spring上下文) ,它创建和管理应用程序组件(components),这些组件或者beans在Spring application context中连接在一起组成一个完整的应用程序

  2. Spring中将beans连接到一起的方式是dependency injection(依赖注入),而不是让组件自己创建和维护他们所依赖的beans,通常通过构造函数或者setter方法传入(autowiring(自动装配))

    • XML配置方式注入

      <bean id="inventoryService"
       class="com.example.InventoryService" />
      <bean id="productService"
       class="com.example.ProductService" />
       <constructor-arg ref="inventoryService" /> //构造函数传入依赖的inventoryService对象
      </bean>
    • 基于Java的配置方式注入(推荐:更大的类型安全性和可重构性)

      @Configuration //此注解表名该类是配置类,将为Spring上下文提供bean
      public class ServiceConfiguration {
       @Bean //此注解表名此方法的返回对象将作为bean添加到Spring上下文中
       public InventoryService inventoryService() {
       return new InventoryService();
       }
       @Bean
       public ProductService productService() {
       return new ProductService(inventoryService()); //构造函数传入依赖bean
       }
  3. Spring通过component scanning(组件扫描)可以自动从应用程序的类路径中发现组件并创建bean放入Spring上下文中,通过autowiring(自动装配)可以自动将组件注入他们所依赖的bean

  4. 除了核心容器之外,Spring和一系列相关的库还提供了: web框架丶数据持久化丶安全框架丶与其他系统集成丶运行时监控丶微服务支持丶响应式编程模型等

  5. 随着Spring Boot的引入automatic configuration(自动配置)已经远远超过了component scanningautowiring的范畴,Spring Boot可以根据类路径条目丶环境变量等其他因素预测哪些组件需要连接

  6. Spring Boot的autoconfiguration(自动配置)大大减少了构建应用程序时的显式配置(XML或者java方式)

初始化一个Spring Boot项目

  1. 使用IDEA方式创建Spring Boot项目
    • 新建项目时使用Spring Initializr创建即可
  2. 了解Spring Boot DevTools(实现热部署)
    • 当代码改变时自动重启应用程序
    • 页面内容改变时(templates,js,css等)会自动刷新浏览器(需要安装配套浏览器插件LiveReload))
    • 禁用模版缓存
    • 如果使用H2数据库则可以实现从浏览器访问H2 Console

Spring 部分功能概述

  1. *Spring core: *

    • Spring框架核心,是Spring其他功能的基础,它主要提供了核心容器依赖注入框架,
    • Spring MVC(web框架)
    • 对数据持久化的支持,如JdbcTemplate
    • Spring(5.0.8)开始支持reactive-style programmingSpring WebFlux web框架
  2. *Spring Boot: *

    • starter dependencies(起步依赖) 和 autoconfiguration(自动配置)
    • 提供对程序内部运行时检查
    • 灵活规范的环境配置
    • 除了核心框架中提供的测试之外,提供额外的测试支持
    • 提供了基于Groovy scripts的编程模型Boot CLI(command-line interface)
  3. *Spring Data: *

    • 对数据持久化操作的支持,简化数据库访问,并支云服务
  4. *Spring Security: *

    • 一个安全框架,包括身份验证授权API安全
  5. Spring Integration

    • 在系统内提供实现轻量级丶事件驱动交互行为的框架
    • 在系统间提供一种基于适配器的平台,以支持灵活的系统间交互
  6. Spring Batch

    • 一个轻量级批处理框架
  7. Spring Cloud

    • 面向microservices(微服务)的架构解决方案

文章作者: Bryson
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bryson !
评论
 上一篇
设计模式-享元模式 设计模式-享元模式
享元模式的定义 *享元(Flyweight)模式: * 运用共享技术来有效地支持大量细粒度对象的复用,它通过共享已经存在的对象来大幅减少需要创建的对象的数量丶避免创建大量相似对象的开销,从而提高系统资源利用率 如线程池 特点 *优点:
2020-04-17
下一篇 
设计模式-外观模式 设计模式-外观模式
外观模式的定义 *外观(Facade)模式: * 是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式,该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提交了
2020-04-15
  目录