Spring实战(第五版)学习笔记——第一章 Spring起步

	软件开发的真谛——唯一不变的就是变化。
	Spring通过引入SpringBoot简化自己的开发模型。

1 什么是Spring

	任何实际的应用程序都是由很多组件组成的,每个组件负责整个应用功能的一部分,这些组件需要与其他的应用
元素进行协调已完成自己的任务。当应用程序运行时,需要以某种方式创建并引入这些组件。

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

	将bean装配在一起的行为是通过一种基于依赖注入(dependency injection,DI)的模式实现的。此时,组件不
会再去创建它所依赖的组件并管理它们的生命周期,使用依赖注入的应用依赖于单独的实体(容器)来创建和维护所有
的组件,并将其注入到需要它们的bean中。通常,这是通过构造器参数和属性访问方法来实现的。

	在核心容器上,Spring及其一系列的相关库提供了Web框架、各种持久化可选方案、安全框架、与其他系统集成、
运行时监控、微服务支持、反应式编程以及众多现代应用开发所需的特性。

	在历史上,指导Spring应用上下文将bean装配在一起的方式是使用一个或多个XML文件(描述各个组件以及它们
与其他组件的关联关系)。

例:

<bean id="inventoryService" class="com.example.InventoryService" />

<bean id="productService" class="com.example.ProductService">
		<constructor-arg ref="inventoryService"/>
</bean>
	在最近的Spring版本中,集于Java的配置更为常见。

例:

@Configuration
public class ServiceConfiguration {
		@Bean
		public InventoryService inventoryService{
				return new InventoryService();
		}

		@Bean
		public ProductService productService{
				return new ProductService(inventoryService());
		}
}
	@Configuration注解会告知Spring这是一个配置类,会为Spring应用上下文提供bean。这个配置类的方法
使用@Bean注解进行了标注,表明这些方法所返回的对象会以bean的形式添加到Spring的应用上下文中(默认情况
下,这些bean所对应的bean ID与定义它们的方法名称是相同的)。

	想对于基于XML的配置方式,基于Java的配置会带来多项额外的收益,包括更强的类安全性以及更好的重构能
力。即便如此,不管是使用Java还是使用XML的显式配置,只有当Spring不能进行自动配置的时候才是必要的。

	在Spring技术中,自动配置起源于所谓的自动装配(autowiring)和组件扫描(component scanning)。借助
组件扫描技术,Spring能够自动发现应用类路径下的组件,并将它们创建成Spring应用上下文中的bean。借助自
动装配技术,Spring能够自动为组件注入它们所依赖的其他bean。
	但是,随着Spring Boot的引入,自动配置的能力已经远远超出了组件扫描和自动装配。Spring Boot是Spring
框架的扩展,提供了很多增强生产效率的方法。最为大家所熟知的增强方法就是自动配置(autoconfiguration),
Spring Boot能够基于类路径中的条目、环境变量和其他因素合理猜测需要配置的组件并将它们装配在一起。
	Spring Boot大幅度减少了构建应用所需的显式配置的数量。
	本书会将Spring和Spring Boot当成一回事。

2 初始化Spring应用

2.1 使用Spring Tool Suite初始化Spring项目

见: 使用IDEA搭建SpringBoot项目.

2.2 检查Spring项目的结构

	·mvnw和mvnw.cmd:Maven包装器(wrapper)脚本。借助这些脚本,即使你的机器上没有安装Maven,也可以构建项目。
	·pom.xml:Maven构建规范。
	·TestApplication.java:SpringBoot的主类,用以启动项目。
	·application.properties:指定配置属性,一开始是空的。
	·static:存放为浏览器服务的静态内容(图片、样式表、JavaScript等等)。初始为空。
	·templates:存放用来渲染内容到浏览器的模板文件。初始为空。
	·TestApplicationTests.java:简单的测试类。确保Spring应用上下文可以成功加载。

2.2.1 探索构建规范 pom.xml

    <dependency
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值