SpringBoot简介与入门程序
SpringBoot简介
SpringBoot是为了简化Spring应用开发的一个框架,是J2EE开发一站式的解决方案,使用它可以快速的构建微服务单元。
优点
1.快速创建Spring项目以及主流框架集成。
2.使用嵌入的servlet容器,应用无需打成war包。如无需安装Tomcat
3.starters启动器自动依赖和版本控制。例如web项目的启动器,只需导入相应的依赖即可。
4.有大量的自动配置,简化开发。如无需配置springMVC 框架的前端控制器等
入门程序
需求:浏览器发送hello请求,服务器响应并返回“Hello SpringBoot”
步骤:
- 创建maven项目
- 在项目pom文件导入SpringBoot父项目以及springboot-web依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
</dependencies>
3.编写主程序类,在类上添加@SpringBootApplication注解,表示该类为应用的启动程序,启动应用时只需执行这个类的main方法即可。
```java
package com.ldx;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
``
4.编写控制器(以前使用SpringMVC配置控制器要配置前端控制器和视图解析器等,这些在SpringBoot中得到简化)
package com.ldx.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello SpringBoot";
}
}
5.启动SpringBoot项目,右键执行HelloWorldMainApplication.java
6.启动成功后,在浏览器输入http://localhost:8080/hello就能得到结果。
入门程序详解
一.pom文件详解
1.父项目依赖spring-boot-starter-parent主要管理spring中需要的依赖的版本信息。因此在以后导入某些依赖时可以不加版本号,当然,springboot没有统一管理的依赖还是要添加版本号
父项目中还有有个父项目依赖spring-boot-dependencies,在该父项目中就对依赖版本进行了统一管理。
2.spring-boot-starter-web依赖中则包含了Tomcat、web以及webmvc等的依赖
二、主程序详解
@SpringBootApplication:主配置类,使用该类启动SpringBoot项目。这是一个组合注解,详情如下:
其中,@SpringBootConfiguration:表示这是一个Spring Boot的配置类,相当于配置文件,配置类也相当于容器中的组件,这也是一个组合注解,其中就包含了@Component注解;
@EnableAutoConfiguration:开启自动配置功能,包括自动导包和自动扫描,将主配置类所在包及其所有字包里面的组件导入容器。