springboot之路
前言
记录自己学习springboot的过程
初识
如上是一个基本的springboot的框架
- model包:数据访问层
连接后端的数据库 - controller包:表示层
负责朴素版的前端 - service包:业务逻辑层
介于表示层和数据访问层之间,业务逻辑主干的部分 - test包
测试使用,因为开发过程中类很多,直接运行完整程序测试不方便,所以在test里调用想测试的部分即可 - 启动java类
与model/controller/service并列的java类,图中为ExampleApplication,用于启动整个程序 - application.properties
用于写一些固定的参数,类似数据库端口等 - pom.xml
用于调用一些maven库,类似python里的pip
环境配置期间参考如下链接
核心知识
Springboot的特色
自动装配;run方法的作用
微服务
把各项业务分离开 eg.分离成一个个jar包
前后端分离
注解
@component
组件
组件?容器?
@Configuration Bean
好像是springboot2新出的一种配置方式,标注@Configuration后会在下面自己写配置类,同时与@bean连用,向容器中添加组件
(比较懵…之后再回头
@Component、@Controller、@Service、@Repository
这些应该是标注下面会有什么东西,比如说controller下面就是表示层的内容
(之后再回头
@Import
导入组件的一种方式
@Conditional 条件装配
限定是否导入某组件的条件
@ImportResource
导入以前spring的配置文件
@Configuration Properties
配置属性
@EnableAutoConfiguration
自动配置
@AutoConfiguartionPackage:自动配置包
@Import(AutoConfigurationImportSelector):自动配置 包注册
@Import(AutoConfigurationImportSelector.class):自动配置导入选择
sprngboot在启动的时候会扫描spring.factories的类,若代码中导入了对应的start且判断条件成立,就有了对应的启动器,进而可以统一自动装配。不需要一个个地像spring一样手动装配。
启动
@SpringApplication
SpringApplication.run 运行springboot项目(初始化,判断是否为web,设置监听器,设置main方法定义类)
yaml语法
配置文件application有两种形式
1.application.properties
语法结构:key=value
2.application.yml 也就是yaml文件
语法结构:key: value(有空格)
#可以存对象,例如
studnent:
name: xxf
age: 3
or
student: {name: xxf,age: 3}
#存数组
pets:
- cat
- dog
or
pets: [cat,dog,pig]
同时,yaml文件里可以直接给实体类赋初值(省去了new/@value的环节)
@ConfigurationProperties(prefix = “xxx”) xxx为类的名
支持批量配置文件中的属性。
yaml可以在一个文件中写多种配置, 以- - -进行分割
server:
port: 8081
spring:
profiles:
#active: dev/test 决定使用哪个版本,不写的话默认第一个版本
---
server:
port: 8082
spring:
profiles: dev
---
server:
port: 8083
spring:
profiles: test
数据校验
JSR303校验
@Email @Min(value) @Max(value) @NotNull @Null @Pattern 等 校验是否符合标准
Web开发
导入静态资源
一般来说
- public 放公共资源
- resources 放一些上传的文件
- static(默认) 放静态资源 eg. 图片
- templates 模板
访问时,直接localhost/1.js 即可 (不用写文件夹名)