Spring 简介

我们常说的 Spring 实际上是指 Spring Framework,而 Spring Framework 只是 Spring 家族中的一个分支而已。

Spring家族中,除了Spring Framework,主要还有:

  • Spring Boot

  • Spring MVC

  • Spring Cloud

什么是 Spring

Spring的核心是提供了一个容器(container),通常称为Spring应用上下文(Spring application context),它们会创建和管理应用组件。这些组件也可以称为bean,会在Spring应用上下文中装配在一起,从而形成一个完整的应用程序。

将bean装配在一起的行为是通过一种基于依赖注入(dependency injection,DI)的模式实现的。

此时,组件不会再去创建它所依赖的组件并管理它们的生命周期,使用依赖注入的应用依赖于单独的实体(容器)来创建和维护所有的组件,并将其注入到需要它们的bean中。

在Spring技术中,自动配置起源于所谓的自动装配(autowiring)和组件扫描(component scanning)。

借助组件扫描技术,Spring能够自动发现应用类路径下的组件,并将它们创建成Spring应用上下文中的bean。

借助自动装配技术,Spring能够自动为组件注入它们所依赖的其他bean。

Spring Boot是Spring框架的扩展,提供了很多增强生产效率的方法。最为大家所熟知的增强方法就是自动配置(autoconfiguration)

Spring 是为了解决企业级应用开发的复杂性而创建的。

使用 Spring 的本质,就是将对象的创建和管理权限交由Spring 容器去控制,而不是由程序员控制。

使用 Spring 可以让 Java Bean 之间进行有效的解耦。

Javabean:是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。

Spring 的重点

一般来说,初学者主要掌握 Spring 四个方面的功能:

  • Ioc/DI

  • AOP

  • 事务

  • JdbcTemplate

Spring的核心概念是IOC(控制反转)和AOP(面向切面编程)。

Spring 项目结构

如上图,其中

  • 应用的源码放到了“src/main/java”中,

  • 测试代码放到了“src/test/java”中,

  • 非Java的资源放到了“src/main/resources”

  • mvnw和mvnw.cmd:这是Maven包装器(wrapper)脚本。借助这些脚本,即便你的机器上没有安装Maven,也可以构建项目。

  • pom.xml:这是Maven构建规范

  • TacoCloudApplication.java:这是Spring Boot主类,它会启动该项目。

  • application.properties:这个文件起初是空的,但是它为我们提供了指定配置属性的地方。

  • static:在这个文件夹下,你可以存放任意为浏览器提供服务的静态内容(图片、样式表、JavaScript等),该文件夹初始为空。

  • templates:这个文件夹中存放用来渲染内容到浏览器的模板文件,如 Thymeleaf、Freemarker模板

  • TacoCloudApplicationTests.java:这是一个简单的测试类,它能确保Spring应用上下文可以成功加载。

为什么打 JAR 包而不是 WAR 包?

打包为JAR文件是基于云思维做出的选择。

尽管WAR文件非常适合部署到传统的Java应用服务器上,但对于大多数云平台来说它们并不是理想的选择。

有些云平台(比如Cloud Foundry)也能够部署和运行WAR文件,但是所有的Java云平台都能够运行可执行的JAR文件。

因此,Spring Initializr默认会使用基于JAR的打包方式

每天学习一点点,每天进步一点点。

posted @ 2020-04-18 08:39  爱吃西瓜的番茄酱  阅读(211)  评论(0编辑  收藏  举报