什么是Spring
Spring可理解为一个巨大的容器,里面由多种组件(bean)组合合成,每个组件有自己的职责和生命周期,组件之间有相互依赖的关系。
构建bean
目前有两种方式来构建bean, XML或者java注解,新版的Spring也推荐我们使用注解的方式来定义bean,我们跟随官方的脚步来看看bean的定义:
@Configuration
public class ServiceConfiguration {
@Bean
public InventoryService inventoryService() {
return new InventoryService();
}
@Bean
public ProductService productService() {
return new ProductService(inventoryService());
}
}
注解@Configuration表明该类是一个可以给Spring提供bean的类;
注解@Bean修饰的内容,则是一个个具体的Bean了;
以上InventoryService通过构造函数的方式,注入进了ProductService,是一个典型的DI(依赖注入)的例子。
初始化Spring程序
由于目前几乎所有Spring程序,都是通过Springboot来开发,我们可以利用Springboot快速初始化一个Spring应用程序,初始化的方式有多种,我们介绍常用的,通过IDEA工具直接从spring.io进行新建。
- IDEA工具的首页窗口,点击File-->New-->Project:
- 选择JDK8(可根据自己的JDK版本选择)后,点击【Next】:
- 填写一些项目信息后,再次点击【Next】,之后我们可以选择一个Web模块(含SpringMVC),可用于后续的快速学习:
- 等待片刻,项目即可构建完成:
Hello world
我们已经集成了web模块在项目中,所以可以直接编写一下代码:
package com.stephen.spring.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@GetMapping("/hello")
public String hello(){
return "hello spring";
}
}
启动项目
日志打印出如下图,表示启动成功:
在浏览器输入http://localhost:8080/hello
恭喜你,成功入坑 _
FAQ
1、新建项目后,很多依赖报错
原因:maven默认会到官方仓库拉取依赖,所以网速可能会很慢,一旦拉不下来,依赖包就会报错,可设置maven的仓库镜像为阿里即可解决。