1.怎么开?
运行@SpringBootApplication注解的主类
2.注解含义
@SpringBootApplication:主要做了@SpringBootConfiguration、@EnableAutoConfiguration两个注解。@SpringBootConfiguration:负责扫描主类以及主类的子包的一些注解
@EnableAutoConfiguration:负责加载SpringBoot默认配置好的设置
@RestController:等于@Controller与@Responsebody加起来。注解的控制器返回不解析为页面
@RequestMapping:访问链接
@Configuration:定义为配置类
@Bean:获取Bean的方法
@Import:加载其他配置类的注解
@Component:加载标注的类进入容器
@ConfigurationProperties用于映射配置文件的属性,person是映射前缀
@SpringBootTest:跟ssm测试的ContextConfiguration一样,注入容器(因为SpringBoot自动扫)
@Autowired:与SSM相同,注入。
@ConfigurationProperties(prefix=“person”)映射对应类别到实体中
@Value:利用(${“person.lastName”})赋值,不适合做复杂结构读取,复杂结构请使用@ConfigurationProperties
@ImportResource:可以用来导入xml文件,虽然SpringBoot推荐使用注解开发,但还是保留了xml接口,必须用在启动类上边。
@PropertySource注解用于读取其他文件,注入内容可以使用@Value或者@ConfigurationProperties
@Bean:等同于标注一个Bean,标注的方法必须返回一个对象
3.SpringBoot配置文件
可以是properties,可以是yaml,官方推荐ymal,因为复杂对象比较简洁…那就看这个吧
默认连接resource下的application.properties和application.yaml配置文件,可以在里面添加内容用于映射,配置属性等。
可以引用其他属性的值来赋值,例如age:
p
e
r
s
o
n
.
a
g
e
也
有
一
些
内
置
函
数
给
予
使
用
,
例
如
{person.age} 也有一些内置函数给予使用,例如
person.age也有一些内置函数给予使用,例如{random.int}等,安装了提示之后,跟java差不多。。
注意:例如person.age:
r
a
n
d
o
m
.
i
n
t
之
后
d
o
g
.
a
g
e
:
{random.int} 之后dog.age:
random.int之后dog.age:{person.age},两个值不相同
dog.age会多调用一次random函数进行赋值。
使用properties有时候会出现乱码问题
IDEA的解决方案是:Setting 搜索file enc 编码都改成UTF-8 并勾上 Transparent
ymal与properties选其一进行使用即可。两个都使用的话另一作为补充使用。
properties不支持驼峰命名法,lastName会被改成last-name,使用lastName会报错(不支持松散绑定)
@Value支持计算,例如#{12*3},而@ConfigurationProperties不支持。
@ConfigurationProperties支持数据校验,配合@Validated以及@Email等注解可以校验数据,@Valid不可以 校验不通过会报错。
@PropertySource注解注意前缀命名,如果前缀与application冲突,会读不到,转而读到application的内容。
application文件拥有读取最高优先级
接下来给出一个配置文件提示插件
<!-- yaml文件提示 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
导入pom.xml,起飞吧!
4.热部署
<!-- 热部署 记得debug启动 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
5.遇到的坑
1、IDEA的文件夹,没有内容不部署。。。坑…
2、IDEA的热部署貌似只有debug有效。。手动Ctrl+F9。。。
3、pom.xml project报错,可能是有的包没下载好…删了重新下就好了
4、一定要注意ymal的格式,错一个地方都会报错!
6.视频地址
7.实践的代码
GitHub:https://github.com/Gruuy/demo1
小弟不才,本文章作为本人的学习记录…方便日后回头查阅。。大佬们勿喷。。