SpringBoot-尚硅⾕笔记SpringBoot-尚硅⾕笔记
⼀、hello world
⽬的:简化spring开发
技术栈:spring全家桶
J2EE⼀站式解决⽅案
优点:
与主流框架集成
嵌⼊tomcat,直接⽣成jar包
starters启动器,⾃动配置依赖和版本管理
⽆需xml,开箱即⽤
提供准⽣产环境的应⽤监控
与云计算集成
发展过程:
1. 单体应⽤:所有的都写在⼀个应⽤⾥,牵⼀发动全⾝
2. 微服务:独⽴功能元素,动态组合,节省资源,服务耦合降低
课程学习:⾕粒学院、博学⾕
知识前提:
1. Spring框架掌握
2. Maven掌握
3. IDEA掌握
环境约束:
1. jdk1.8
2. maven
3.x
3. IDEA2017以上
4. springboot 1.
5.9 release
配置
maven添加配置
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<mavenpiler.source>1.8</mavenpiler.source>
<mavenpiler.target>1.8</mavenpiler.target>
<mavenpilerpilerVersion>1.8</mavenpilerpilerVersion>
&ding>utf-8</ding>
</properties>
</profile>
IDEA配置
配置默认maven为指定maven
hello world
需求:浏览器发送hello请求,服务器返回处理结果
springboot结构1.创建普通maven⼯程,⽆⾻架
2.添加maven依赖
包括⽗⼯程依赖和springweb依赖,此处打包为jar
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3.编写主程序
要掌握的注解:@SpringBootApplication。标志这是⼀个Springboot的应⽤,此时注解在主函数类外main⽅法中:
SpringApplication.run(main类字节码⽂件,args)
4.编写controller⽂件
要掌握的注解:@Controller。表⽰这个类为控制类,映射请求
要掌握的注解:@RequestMapping。表⽰这个⽅法所映射的请求
要掌握的注解:@ResponseBody。表⽰这个⽅法会返回⼀个值给response
细代码可以参考springboot环境配置⽇志
5.看效果
可以直接⼯程中点击运⾏查看,然后去浏览器访问查看效果,也可以maven package打包成jar,然后:java -jar xxx
然后浏览器访问即可
细节⼀⼆
RESTAPI解释
服务器请求,处理后不是跳转页⾯,⽽是返回内容
如果某个controller类的所有mapping⽅法都是返回⼀个内容(字符串或者json),那么可以将@ResponseBody加到类上⾯。
要掌握的注解:@RestController。这个为:@ResponseBody+@Controller
使⽤spring initializer快速⽣成springboot项⽬
⽣成项⽬的⽬录结构:
主程序已经⽣成好
resources⽂件夹:
static:保存静态资源:js css images
templates:存放模板引擎,默认jar包使⽤嵌⼊式tomcat,不⽀持jsp页⾯
application.properties:springboot应⽤配置⽂件,⽤来改变默认配置
⼆、springboot配置
配置⽂件
applicatin.properties
⽤来改变springboot默认配置,路径:src/main/resource或者类路径/config
yml配置实例:
server:
port:8081
yml语法
基本语法
key: value
注意:key和value之间严格【空格】约定!同⼀缩进下的kv属于同⼀层级
不能是tab,只能是空格
注意事项:
属性值中单引号中可以转义,双引号不会转移,字符串默认不⽤加引号
对象表⽰可以⽤⾏内写法:friends: {lastname: ddd,age: 18}
数组使⽤横杠空格表⽰元素
#普通写法
pets:
- cat
- dog
- pig
#⾏内写法
pets:[cat,dog,pig]
配置⽂件注⼊javabean
配置⽂件内容:
person:
name: abc
age:18
dog:
name: gaga
age:2
lists:
- abc
- gaga
其中,person下的第⼀个层级都与javabean中的属性⼀⼀对应。
在Person类中,需要加上注解:@Component和@ConfigurationProperties(prefix="person")
要掌握的注解:@ConfigurationProperties(prefix="person")。⽤于将配置⽂件内的对应属性映射到javabean上,其中prefix表⽰选定的配置⽂件字段,默认从全局配置⽂件中获取值
要掌握的注解:@PropertySource(...)。⽤于指定配置⽂件路径,可以指定多个,当需要获取其他⽂件⾥的配置需要加该注解
要掌握的注解::@Component。该注解将当前类加⼊容器管理,标识为spring的组件,这样才能使⽤第六个注解的功能
注意事项:
使⽤上⾯的注解后会提⽰导⼊配置⽂件注解处理器包:
<!--导⼊配置⽂件处理器后,配置⽂件中写绑定信息会有提⽰-->
验证注⼊情况
采⽤spring的测试类来查看注⼊情况
在test-java-包下有个测试类,包含两个注解:@RunWith(SpringRunner.class)和@SpringBootTest,
在测试类中写上Person person;并注解:@Autowired,然后定义⼀个⽅法输出该字段,并给该⽅法注解@Test
要掌握的注解:@RunWith(SpringRunner.class)。表⽰当前测试类使⽤的测试驱动器为springrunner,当然也可以指定为junit等要掌握的注解:@SpringBootTest。表⽰当前类为springboot的测试类
要掌握的注解:@Autowired。表⽰当前类字段⾃动从spring容器中注⼊匹配的javabean
要掌握的注解:@Test。表⽰当前⽅法为需要测试的⽅法,必须注解在测试类中
properties语法
直接看:
#由于idea默认properties使⽤utf-8编码,
#⽽程序运⾏时默认采⽤ascii编码,
#所以输出中⽂会乱码,在idea的file encoding中设置运⾏时转码为ascii
person.last-name=abc
person.age=18
person.dog.name=gaga
person.dog.age=1
person.maps.k1=v1
person.map.k2=v2
要掌握的注解:@Value("${person.last-name})。该注解放在javabean类中的属性上,表⽰从spring容器中取出哪个值注⼊到当前属性中,value中也⽀持el表达式:@Value("#{11*2})会将22注⼊
注意:@ConfigurationProperties和@Value
松散绑定:
只⽤configurationproperties⽀持松散绑定
spel语法:只有Value⽀持,毕竟另⼀个是统⼀注⼊的
jsr303校验:ConfigurationProperties⽀持,如类上加:@Validated,字段上加:@Email,则当前字段必须为邮箱格式,Value不⽀持
Value注解在复杂类型封装时不⽀持,只能注⼊基本数据类型
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论