SpringBoot入门

1.SpringBoot介绍

1.1 SpringBoot简介

        SpringBoot是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。
Spring Boot的主要优点:
a.为所有Spring开发者更快的入门
b.开箱即用,提供各种默认配置来简化项目配置
c.内嵌式容器简化Web项目
d.没有冗余代码生成和XML配置的要求

1.2 使用SpringBoot系统要求

系统要求:
Java1.8及以上
Spring Framework 4.1.5及以上

1.3 SpringBoot和SpringMVC区别

        SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。
SpringMVC是控制层。

1.4 SpringBoot和SpringCloud区别

        SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。
        SpringCloud依赖与SpringBoot组件,使用SpringMVC编写Http协议接口,同时SpringCloud是一套完整的微服务解决框架。
常见误区:
1.SpringBoot并不是一个微服务框架,它只是一个用于快速开发的框架。SpringCloud才是真正的微服务框架。
2.使用SpringBoot的基础上,想做微服务开发并不是只能用SpringCloud与它进行整合,还可以使用Duboo与SpringBoot进行整合进行微服务开发,只不过使用SpringCloud更为轻量。

2.SpringBoot快速入门

2.1 创建一个Maven工程

在这里插入图片描述

2.2 pom文件引入依赖

<!-- Maven parent 目的,聚合工程、继承关系 -->
<!--Spring parent 目的: 统一整合第三方框架依赖信息 (SpringBoot 支持依赖 不需要写版本号) -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
</parent>
	
<dependencies>
	<!-- -springboot 整合Web组件 整合SpringMVC 就会把传统方式的SpringMVC依赖的jar全部给下载来 -->
	<!-- 引入spring-boot-starter-web 帮你整合好所有相关的依赖jar包 原理 maven依赖传递 -->
	<!-- 原理: spring-boot-starter-parent< 中,整合号相关 jar依赖信息 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2.3 编写第一个服务HelloWorld

创建package命名为com.lzh.controller(根据实际情况修改)
创建HelloController类,内容如下

package com.lzh.controller;
//在上加上RestController 表示修饰该Controller所有的方法返回JSON格式,直接可以编写
@RestController
//注解@EnableAutoConfiguration:作用在于让 Spring Boot   
// 根据应用所声明的依赖来对 Spring 框架进行自动配置 这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。
// 由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
@EnableAutoConfiguration

public class HelloController {
    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }
    public static void main(String[] args) {
        SpringApplication.run(HelloController.class, args);
    }
}

SpringApplication.run(HelloController.class, args) 标识HelloController为启动类

2.4 SpringBoot启动方式1

在2.3的代码上添加@RestController和@EnableAutoConfiguration
@RestController的作用:在上加上RestController 表示修饰该Controller所有的方法返回JSON格式,直接可以编写
@EnableAutoConfiguration的作用:
        让 Spring Boot根据应用所声明的依赖来对 Spring 框架进行自动配置 这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。
        由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。

启动主程序,打开浏览器访问http://localhost:8080/hello,可以看到页面输出Hello World

2.5 SpringBoot启动方式2

@ComponentScan(basePackages = “com.lzh.controller”)—控制器扫包范围
在 com.lzh.controller下新建一个类App

package com.lzh.controller;
@ComponentScan(basePackages = "com.lzh.controller")
@EnableAutoConfiguration
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

新建一个HelloController

package com.lzh.controller;

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String index() {
        return "Hello World1";
    }
}

启动主程序App,打开浏览器访问http://localhost:8080/hello,可以看到页面输出Hello World

2.6 SpringBoot启动方式3

使用@SpringBootApplication
@SpringBootApplication=@Configuration+@EnableAutoConfiguration+@ComponentScan 注解所修饰,换言之 Springboot 提供了统一的注解来替代以上三个注解
扫包范围:在启动类上加上@SpringBootApplication注解,当前包下或者子包下所有的类都可以扫到。
a.在com.lzh下新建一个类App

package com.lzh;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {

	/**
	 * 注意:@SpringBootApplication 扫包范围是在同级包和当前包下
	 * @param args
	 */
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

b.在 com.lzh.controller下新建一个类HelloController1(当前包下)

package com.lzh.controller;

@RestController
public class HelloController1 {
    @RequestMapping("/hello1")
    public String index() {
        return "Hello World1";
    }
}

c.在com.lzh下新建一个类HelloController2(子包下)

package com.lzh;

@RestController
public class HelloController2 {
    @RequestMapping("/hello2")
    public String index() {
        return "Hello World2";
    }
}

启动App
访问http://localhost:8080/hello1和http://localhost:8080/hello2都是可以成功访问的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值