正在自学尚硅谷雷丰阳的springboot视频,参考这位同学得笔记https://blog.csdn.net/qq_31279347/article/details/82795706?utm_source=copy,整理如下(持续更新中):
一、关于环境的说明:
1.首先需要注意的是maven设置,这个很重要。
2.其次是需要注意环境的统一 二、pom.xml相关依赖 1.最基本的依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
1.关于bean的写法:
(1)使用注解,记得一定要有@Component容器声明
(2)每个成员变量的值可以通过系统配置文件中读取(必须使用@ConfigurationProperties(prefix = "bean的名字")),配置文件分为两种,一种后缀是.properties,一种后缀是.yml。都放在main>resources路径下。两种书写格式不太一样,例子如下:
yml例子:
properties例子:
这里配置文件还可以使用占位符表示值。比如:使用spring已经预定义的随机数变量或配置文件中之前定义过的变量值,使用${占位符名字}这种方式:
随机数:
${random.value}、${random.int}、${random.long} ${random.int(10)}、${random.int[1024,65536]}
看例子:
可以使用占位符获取之前配置的值,比如${person.last-name}等,如果没有可以用“冒号+指定默认值”
(3)另外一种成员变量获取值的表达式还可以是通过@Value注解,这种方式等同于XML配置中的<property/>标签,跟之前spring传统架构中xml中声明bean的写法效果是一样的。因此value表达式写法也类似,有三种:
- ${key}从环境变量或配置文件中获取
- #{SpEL}从springEL表达式获取,SpEL为了更方便获取Spring容器中的Bean的值
- 直接写字面值
看下面的例子便清楚了:lastName值是从配置文件中读取的,age值是采用的springEL算数表达式,而boss值直接赋true布尔值
以下是关于两种bean获取值的方式的比较:这里所谓的松散绑定是说成员变量名在configurationProperties里更宽松,看一下这里的匹配规则,是不是很宽松
所谓JSP303数据校验,configurationProperties是支持的,也就是说在configuration注解下的属性值设置时是可以进行数据校验的,需要将bean注解为@Validated ,并且需要校验的成员变量声明语句上加具体要按照什么规则校验,例如邮箱是@Email
看这个例子:
这里将last-name的值用email校验,因此在测试启动时就报错了,因为配置文件里的这个值不是邮箱地址格式
另外@Value不支持复杂数据类型的值,比如Map,List等
总结:当写javaBean或者pojo时,最好使用ConfigurationProperties注解方式,而对于获取一些单一的值或简单类型的值,可以使用@Value方式
2.关于运行时入口类的写法:
在创建Maven工程时,IDEA自动为我们创建了一个入口类,用工程名+"Application"命名。写法如下:
执行方法有两种:
一种是在main方法左侧绿色三角处右键选择"Run 类名" 或快捷键“ctrl+shift+F10”。这种方式直接将build,package,run等过程封装起来一键完成。
一种是分步骤,先将其打成jar包后再手动运行。首先是打包步骤:将右侧maven窗口调出来,然后双击
这个下拉项中的package执行打包命令,或在terminal 中敲击mvn package命令执行
若打包成功,则会在console中输出下面图片信息,并将jar包路径显示出来,默认在工程的target下
然后在windows中打开一个shell窗口,执行java -jar jar包路径,这才执行这个jar包
然后开一个浏览器,输入:http://localhost:8081/hello 验证一下。
这里忽略了controller的介绍,如果没有controller是无法响应这个请求的,接下来介绍
3.关于controller的写法:
注意controller必须放在与入口类同一根目录下,不然入口类找不到它。
然后看看controller是怎么写的:
这里的注解解释一下:
@RequestMapping:表明匹配请求中的哪种情况
@ResponseBody:表明结果要作为一个response内容返回给浏览器
@RestController注解相当于@ResponseBody + @Controller合在一起的作用
4.关于Test类的写法:
IDEA创建工程时自动在test.java目录下给我们把测试类写好了
看一下测试类如何注解及运行
类首先需要注解为@SpringBootTest
需要测试的类要用@Autowired来绑定
测试方法需要注解为@Test
运行方法与main方法类似,左侧绿色箭头点击“Run *****”,可以在console中看到测试效果如下: