springboot学习记录
Last updated on August 11, 2024 pm
.
一、入门
1、概述
1)搜索springboot.io查找使用手册(全英的我很难看懂……)
2)springboot提供了一种快速开发spring项目的方式(自动配置、起步依赖(Maven))
3)springboot项目构建时采用jar的打包方式
4)start.spring.io 在官网配置spring boot项目
5)sout——system.out.println
2、实现基本案例
搭建springboot工程,定义HelloController.hello()方法,返回指定内容。
1)创建Maven项目
2)导入SpringBoot起步依赖(创建项目时勾选SpringWeb和Thymeleaf依赖)
3)定义Controller
4)编写引导类(现在版本自动生成,是Springboot项目的入口)
5)启动测试
3、起步依赖原理
1)在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
2)在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
3)我们的忠诚继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。
二、配置文件
spring boot是基于约定的,所以很多配置都有默认值,如果想用自己的配置替换默认值,就可以用application.properties或者application.yml(/yaml)进行配置。
1、两种配置文件
properties: server.port=8085(键=值)
yml/yaml: server: (换行缩进)
port: 8080
在同一级目录下的优先级:properties>yml>yaml
2、YAML文件是以数据为核心的,比xml更加简洁,相对于properties来说更容易看出配置属于哪个层级。
1)大小写敏感、2)数值前必须有空格作为分隔符、3)缩进代表层级关系,不能使用Tab,只能使用空格,空格数不重要,只需要相同层级的元素左侧对齐即可。4)#表注释
参数引用: ${key}
3、配置文件读取
三种方法
@value
Environment
@ConfigurationProperties:是我们配置文件的内容和对象做映射
(1)读取实例方法一(@value)
如果想要在/hello路径输出一个字符串,controller文件可以这么写:
1 |
|
如果想要读取配置文件,可以将文件修改为:
1 |
|
(2)读取配置方法二(Environment)
1 |
|
(3)读取配置文件方法三(@ConfigurationProperties)
注:yml文件如下
1 |
|
1、第一步,新建一个person类,添加属性与yml对应。右键生成getter 和 setter,然后添加注解:@Component(让它被识别)和@ConfigurationProperties。此时如果生成一个Person对象叫person,再输出它的值,则输出的name值是abc,age读取不了因此输出默认值0.因此。导入@ConfigurationProperties时,要用这样的形式:
1 |
|
2、controller文件中注入一个Person对象,用@Autowired注解来注入。并打印。
1 |
|
我们会发现打印出来的结果是org.example.demo.Person@347d42b6,这是因为默认情况下会打印出对象的类名和对象的哈希码。如果想要打印出对象的具体属性值,则需要在Person类中重写toString()方法。例如:
1 |
|
此时打印出来的结果就变成了Person{name=’Yaoyao’, age=21}
3、读取数组
1)将address数组复制到person下,在Person里加入字符串数组private String[] address
并在Person里加入getter 和 setter,不需重写toString。
2)controller文件中输入person.getaddress,alt+enter键快捷生成常量。接着打印
1 |
|
控制台会打印出beijing和shanghai。
4、profile
我们在开发spring boot应用时,通常同一套程序会被安装到不同的环境,比如开发、测试、生产等。其中数据库地址、服务器端口等配置都不同,如果每次打包时都要修改配置文件则非常麻烦,profile就是用来进行动态配置切换的。
(1)profile配置——多profile文件方式
创建多个properties文件,分别命名为application-dev.properties(开发)、application-test.properties(测试)、application-pro.properties(生产)。如果分别在里面设置了端口号,这时候直接运行,会显示Tomcat仍旧运行在默认端口8080,因为没有配置文件被激活。如果想要激活某一个配置文件,可以在主配置文件中加入spring.profiles.active=dev;这时就激活了application-dev.properties
(2)profile配置——yml多文档方式(更加简洁)
(需要把刚刚的那些配置注释掉)(记得空格,不要把server写成sever。。服了,找半天错误)
(3)不依赖idea修改配置和激活工程
右边找到package选项将工程打包成jar文件
找到文件位置打开终端,java -jar .\demo1-0.0.1-SNAPSHOT.jar运行。
如果想要在这里配置参数,java -jar .\demo1-0.0.1-SNAPSHOT.jar –spring.profiles.active=test
5、内外部配置文件加载顺序
1)内部
其中我们用的在resources目录下的properties配置文件属于第四种
2)外部
可以通过命令行的方式来修改配置。
方法一:在运行jar包语句后面加上 –server.port=8053这样类似的配置语句
方法二:在运行jar包语句后面加上 –spring.config.location=/放置的外部配置文件的路径