简介
SpringBoot 简化Spring开发。主要是用来监护Spring应用开发,是对Spring的封装,其主要突出约定大于配置,只需要有引入对应的依赖,就能创建一个独立的,产品级的项目。
在使用SpringBoot进行开发时,只需要配置相应的Spriing Boot就可以使用所有的Spring组件。Spring Boot整合了目前很多被经常广泛应用的框架,不用程序员动手去写xml配置,就可以直接导入以来使用。
优点
- 快速创建独立运行的Spring项目以及主流框架集成- 使用嵌入式的Servlet容器,应用无需达成war包,jar包就可以了。- starters自动依赖与版本控制- 大量的自动配置,简化开发,也可以修改默认值- 无需配置XML,没有代码生成,开箱即用。- 准生产环境的运行时应用监控。- 与云计算的天然集成。
Spring Boot的核心特点
微服务: 使用Spring Boot可以生成独立的微服务功能单元。自动配置:针对很多Spring应用程序常用的应用功能,Spring Boot能自动提供相关配置。起步依赖: 只需要在相关的pom里面引入对用的依赖,就能使用。命令行界面: 可选特性,只需要写代码就能完成完整的应用程序,无需传统项目构建。Actuator: 能够深入运行中的Spring Boot应用程序。
SpringBoot简单入门案例
第一步: 配置SpringBoot版本控制依赖, 引入SpringBoot版本控制,以后在导入以来的时候,不需要再考虑版本问题。
<!--配置Spring Boot 依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
第二步:引入需要的开发环境
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
第三步:编写启动类和application文件
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class,args);
}
}
server:
port: 8089
1、为什么在开发中只需要引入一个Spring Boot依赖
> SpringBoot最主要直接的优势就是简化了Spring框架带来的繁琐配置xml问题,它为我们提供了简化了企业级开发绝大多数场景的starter pom(启动器),只需要引入对应的启动器,Spring Boot就会进行自动配置,从而简化开发,业务中我们就会使用到Spring Boot提供的自动配置的Bean。
理解Spring Boot 启动类注解@SpringBootApplication
1、程序从main方法开始运行2、使用SpringApplication.run()加载主程序类。3、主程序类需要标注@SprungBootApplication4、@EnableAutoConfiguration是核心注解5、@Import导入所有的自动配置场景6、@AutoConfigurationPackage定义默认的包扫描规则7、程序启动扫描i加载主程序类所在的包以及下面所有子包的组件
该注解包含了以下内容:
@Configuration:将类标记为应用程序上下文的bean定义源。
@EnableAutoConfiguration: 告诉Spring Boot根据类路径设置、其他bean和各种属性设置开始添加bean。例如,如果spring-webmvc在类路径上,该注释将该应用程序标记为web应用程序并激活关键行为,例如设置DispatcherServlet
@ComponentScan : 告诉Spring在com/example包中查找其他组件、配置和服务,让它找到控制器。
创建一个RestFul风格的应用
实体类:
public class Greeting {
private Integer id;
private String content;
public Greeting() {
}
public Greeting(Integer id, String content) {
this.id = id;
this.content = content;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "Greeting{" +
"id=" + id +
'}';
}
}
创建资源控制器
@RestController
public class GreetingController {
private static final String template = "Hello,%s !";
private final AtomicInteger counter = new AtomicInteger();
@GetMapping("/greeting")
public Greeting greeting(@RequestParam(value = "name",defaultValue = "World") String name){
return new Greeting(counter.incrementAndGet(),String.format(template,name));
}
}
解释:
@GetMapping注解保证了Http的get请求向/greeting返送并且映射到对应的greeting方法。
@RequestParam 主要是绑定请求路径中携带的参数,主要包含三个参数,一个是name,表示在请求路径中的属性名,第二个是required,值为true或者false,表示该属性是否在请求中必须携带,第三个参数为defaultValue,设置属性名的默认值,如果设置了默认值,那第二个参数,就只能取false。
@RestController 这个注解标注在类上,是由@Controller和ResponseBody组成的注解,表示该类为controller类,并且该类中的所有接受到的HTTP请求,其数据返回为JSON类型。得益于Spring的HTTP消息转换器支持,程序员不用手动的去转换数据,Jackson 2 被包含在Spring的环境中,即Spring 的MappingJackson2HttpMessageConverter 就是转换java数据为Json数据的转换器。