SpringBoot2学习第一天—基础入门

标题:SpringBoot2学习第一天—基础入门

学习内容:

1、SpringBoot的相关概述
2、快速创建一个SpringBoot项目
3、SpringBoot的依赖管理和自动配置
4、容器功能注解
5、最佳实战模板


内容详情:

1、SpringBoot的相关概述

Spring的生态

web开发
数据访问
安全控制
分布式
消息服务
移动开发
批处理

Spring5重大升级

响应式编程
内部源码设计

为什么用SpringBoot

能快速创建出生产级别的Spring应用

SpringBoot优点

创建独立Spring应用

内嵌web服务器

自动starter依赖,简化构建配置

自动配置Spring以及第三方功能

提供生产级别的监控、健康检查及外部化配置

无代码生成、无需编写XML

SpringBoot是整合Spring技术栈的一站式框架
SpringBoot是简化Spring技术栈的快速开发脚手架

SpringBoot缺点

人称版本帝,迭代快,需要时刻关注变化
封装太深,内部原理复杂,不容易精通

2、 快速创建一个SpringBoot项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

创建好后创建一个HelloController类简单感受一下Springboot的简单。

@RestController
public class HelloController {


    @RequestMapping("/hello")
    public String handle01(){
        return "Hello, Spring Boot 2!";
    }


}

在这里插入图片描述
运行main方法,在浏览器里http://localhost:8080/hello
在这里插入图片描述
端口号默认8080,也可以在application.properties里面改端口号

在这里插入图片描述
在这里插入图片描述
3、SpringBoot的依赖管理和自动配置

依赖管理

开发导入starter场景启动器

见到很多 spring-boot-starter-* : *就某种场景
只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
见到的 *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。

无需关注版本号,自动版本仲裁

引入依赖默认都可以不写版本
引入非版本仲裁的jar,要写版本号。

可以修改默认版本号

查看spring-boot-dependencies里面规定当前依赖的版本用的 key。 在当前项目里面重写配置
<&properties>
<mysql.version>5.1.43</mysql.version>
<&/properties>

$符号是没有的,我写这个是为了显示这个标签
在这里插入图片描述
自动配置

自动配好Tomcat

引入Tomcat依赖
配置Tomcat

自动配好SpringMVC

引入SpringMVC全套组件
自动配好SpringMVC常用组件(功能)

自动配好Web常见功能,如:字符编码问题

SpringBoot帮我们配置好了所有web开发的常见场景

默认的包结构

主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来
无需以前的包扫描配置

想要改变扫描路径

@SpringBootApplication(scanBasePackages=“com.atguigu”)
或者@ComponentScan 指定扫描路径

@SpringBootApplication
等同于
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.atguigu.boot")

各种配置拥有默认值

默认配置最终都是映射到某个类上,如:MultipartProperties
配置文件的值最终会绑定每个类上,这个类会在容器中创建对象

按需加载所有自动配置项

非常多的starter
引入了哪些场景这个场景的自动配置才会开启
SpringBoot所有的自动配置功能都在spring-boot-autoconfigure包里面

4、容器功能注解

基于注解驱动开发里面再详细描述。

@Configuration

告诉SpringBoot这是一个配置类 == 配置文件

proxyBeanMethods:代理bean的方法

Full(proxyBeanMethods = true)【保证每个@Bean方法被调用多少次返回的组件都是单实例的】
Lite(proxyBeanMethods = false)【每个@Bean方法被调用多少次返回的组件都是新创建的】
组件依赖必须使用Full模式。

例如:@Configuration(proxyBeanMethods = false),默认是true

@Bean、@Component、@Controller、@Service、@Repository

@ComponentScan

指定扫描哪些,Spring注解;

@Import({User.class, DBHelper.class})

给容器中自动创建出这两个类型的组件、默认组件的名字就是全类名

@Conditional

条件装配:满足Conditional指定的条件,则进行组件注入

@ImportResource

原生配置文件引入

只有在容器中的组件,才会拥有SpringBoot提供的强大功能

@ConfigurationProperties

配置绑定
@Component + @ConfigurationProperties 先加入到容器,再配置绑定properties文件

例如:@ConfigurationProperties(prefix = “mycar”)

@EnableConfigurationProperties

在配置类上面写
@EnableConfigurationProperties(Car.class)
开启Car配置绑定功能
把这个Car这个组件自动注册到容器中

@EnableConfigurationProperties + @ConfigurationProperties==@Component + @ConfigurationProperties

如果组件不能通过@Component添加,就可以使用这个

5、最佳实战模板

1.引入场景依赖

https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter

2.查看自动配置了哪些(附加,可以跳过)

自己分析,引入场景对应的自动配置一般都生效了
配置文件中写debug=true开启自动配置报告。

3.是否需要修改

参照文档修改配置项
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#common-application-properties

自己分析。xxxxProperties绑定了配置文件的哪些。

自定义加入或者替换组件 @Bean、@Component。。。

自定义器 XXXXXCustomizer;

补充:

dev-tools

项目更改编译(ctrl+F9)就行了,不需要重启

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
</dependency>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值