目录
1. 能够帮助开发者实现快速整合第三方框架 (原理:Maven依赖封装)
2. 去除xml配置 完全采用注解化 (原理:Spring体系中内置注解方式)
3. 无需外部Tomcat、内部实现服务器(原理:Java语言支持内嵌入Tomcat服务器)
File-newproject,选择Spring Initializr,创建项目
1.入门
1.1、SpringBoot简介
SpringBoot 是一个快速开发的框架, 封装了Maven常用依赖、能够快速的整合第三方框架;简化XML配置,全部采用注解形式,内置Tomcat、Jetty、Undertow,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。
SpringBoot原理介绍:
1. 能够帮助开发者实现快速整合第三方框架 (原理:Maven依赖封装)
2. 去除xml配置 完全采用注解化 (原理:Spring体系中内置注解方式)
3. 无需外部Tomcat、内部实现服务器(原理:Java语言支持内嵌入Tomcat服务器)
1.2项目创建
-
File-newproject,选择Spring Initializr,创建项目
项目结构
1.3helloword
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
</parent>
<groupId>com.demo</groupId>
<artifactId>springlearn</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springlearn</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
spring-boot-starter-parent作用
在pom.xml中引入spring-boot-start-parent,spring官方的解释叫什么stater poms,
它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency
的时候就不需要version了,后面可以看到。
spring-boot-starter-web作用
springweb 核心组件
HelloWordController
package com.demo.springlearn.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@EnableAutoConfiguration
@RestController
public class HelloWordController {
@RequestMapping("/hello")
public String hello(){
return "Hello Springboot";
}
public static void main(String[] args) {
SpringApplication.run(HelloWordController.class,args);
}
}
右键run启动工程,浏览器访问:http://localhost:8080/hello
依赖解释:
RestController 表示修饰该Controller所有的方法返回JSON格式,直接可以编写
Restful接口,该注解是SpringMVC提供的
@EnableAutoConfiguration
注解:作用在于让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置
这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
通常写法是单独创建一个类作为启动类
package com.demo.springlearn;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
//@SpringBootApplication
@ComponentScan("com.demo.springlearn")//控制器扫包范围,不加spring不知道控制器范围
@EnableAutoConfiguration
public class SpringlearnApplication {
public static void main(String[] args) {
SpringApplication.run(SpringlearnApplication.class, args);
}
}
@SpringBootApplication
@SpringBootApplication 被 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰,换言之 Springboot 提供了统一的注解来替代以上三个注解
指定所扫的包,会自动扫描指定包下的全部标有@Component的类,并注册成bean, * 当然包括@Component下的子注解@Service,@Repository,@Controller。
扫包范围:在启动类上加上@SpringBootApplication注解,当前包下或者子包下所有的类都可以扫到。
package com.demo.springlearn;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
//@ComponentScan("com.demo.springlearn")//控制器扫包范围,不加spring不知道控制器范围
//@EnableAutoConfiguration
public class SpringlearnApplication {
public static void main(String[] args) {
SpringApplication.run(SpringlearnApplication.class, args);
}
}