第一章 Spring 简介 v1.0
第一部分 概况

第二部分 初始化Spring应用
一、Spring Initializr
1.使用Spring Initializr的几种方式
- 通过访问Spring Initializr 官网
- 在命令行中使用curl命令
- 在命令行中使用Spring Boot命令行接口
- 在Spring Tool Suite中创建新项目
- 在IntelliJ IDEA中创建项目
- 在NetBeans中创建项目
2.起步依赖(starter)
Spring官方提供的相关功能开发所需要的常见依赖
- spring-boot-starter-web:包含了web应用开发所需要的常见依赖
- spring-boot-starter-test:包含了单元测试所需要的常见依赖
- ...
3.创建项目
使用IntelliJ IDEA创建项目
选择Generators(生成器):Spring Initializr
(可选)服务器URL可以修改为阿里云地址:
https://start.aliyun.com/选择对应jdk版本,并配置好项目信息
SpringBoot配置:
选中
Developer Tools选项下的Spring Boot Devtools&Lombok选中
Web中的Spring Web选中
Template Engines中的Thymeleaf
注意:在使用jdk1.8版本时,SpringBoot大版本应选择2而不能选择3。
[配置步骤图]


二、Spring项目结构
1.基本项目结构
bash
project
|-scr/main/java #应用源码
|-ProjectApplication.java #Spring Boot主类,用于启动该项目
|-scr/main/resources #资源文件
|-static #静态资源文件夹
|-templates #模板文件文件夹
|-application.properties #用于指定配置属性的文件
|-src/test/java #测试代码
|-ProjectApplicationTests.java #简单测试类
|-pom.xml #Maven构建规范文件
|-mvnw
|-mvnw.cmd #mvnw与mvnw.cmd都是Maven包装器脚本,用于构建项目2.Spring Boot主类(ProjectApplication.java)
java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // Spring Boot 应用
public class ProjectApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args); // 运行应用
}
}3.测试类(ProjectApplicationTests.java)
java
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest // Spring Boot 测试
class ProjectApplicationTests {
@Test
void contextLoads() { // 测试方法
}
}4.控制器类
java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // 控制器
public class Home {
@GetMapping("/") // 处理对根目录 "/" 的请求
public String home(){
return "home"; // 返回视图名
}
}第三部分 Spring基本原理
一、Spring配置的两种方式
在Spring中,指导Spring应用上下文将bean装配在一起的方式有两种。
1.XML配置
下面的XML描述了两个bean,也就是InventoryService bean和ProductService bean,并且通过构造器函数将InventoryService装配到了ProductService中。
xml
<bean id="inventoryService"
class="com.example.InventoryService" />
<bean id="productService"
class="com.example.ProductService">
<constructor-arg ref="inventoryService" />
</bean>2.基于Java的配置
java
@Configuration
public class ServiceConfiguration {
@Bean
public InventoryService inventoryService() {
return new InventoryService();
}
@Bean
public ProductService productService() {
return new ProductService(inventoryService());
}
}@Configuration注解会告知Spring这是一个配置类,为Spring应用上下文提供bean。