配置
首先,配置文件我们一般用yml
格式,且可以分环境在classpath
下,创建application.yml
为主配置文件
下来可以创建文件名规范为application-__.yml
的yml文件
例如application-dev.yml
,application-prod.yml
在主配置文件application.yml
做以下配置,即可使用application-dev.yml
下的配置信息;
注意,无论使用哪个子配置文件,主配置文件中的配置都会生效(相当于通用配置),若子配置文件覆盖掉主配置文件中的相同信息,则最终为子文件中的配置
一些基本配置
1 | server: |
启动方式
开发工具启动
项目目录下执行 :
mvn springboot:run
生产环境
项目目录下执行
mvn clean package
编译项目成功后执行
cd target
进入编译生成的target目录执行
java -jar JAR包文件名
启动(这里启动时,可以配置参数,以指定SpringBoot的配置文件)java -jar 文件名.jar --spring.profiles.active=prod
这样就可以用application-prod.yml
启动
常用注解
1 | # yml: |
@Value("")
用在 配置变量 的定义上主要用于单个自定义配置
配置文件中自定义的参数
0
注入类变量 ,相比于下面的配置类批量注入来说比较繁琐1
2
3
4
5//CustomParConfig.java
private String myCustomPar1;
private String myCustomPar2;@ConfigurationProperties(perfix = "")
配合@Component
写在配置类上主要用于多个自定义配置
该注释可直接将自定义配置批量注入配置类
1
2
3
4
5
6
7
8//LimitConfig.java
public class LimitConfig {
private Integer ANum;
private Integer BNum;
//省略get()和set()
}这样就可以直接将 .yml 中的参数封装到配置类中,其他地方获取只需用@Autowired注入即可
@RestController
用在Contorller类上代替了@Controller,并且还相当于在类的所有方法上都加@ResponseBody注解,即该类下的所有方法都会返回字符串,一般用于返回json格式数据
1
2
3
4
5
6//本类中访问根url为http://localhost:8080/hw/...
public class HelloController {
//omit....
}@RequestMapping
配置url映射1
2
3
4
5
6//postman中以POST请求访问url:url:http://localhost:8080/hw/say
public String say() {
return "100"
}
//页面返回值:100@___Mapping
系列:GetMapping ,PostMapping,映射单个url:@GetMapping(“url”)
映射多个url:@GetMapping({“/url1”,”/url2”})
@PathVariable("")
获取url中的数据1
2
3
4
5
6//url:http://localhost:8080/hw/say/100
public String say( Integer myId ){
return String.valueOf(myId);
}
//页面返回值:100@RequestParam("")
获取请求参数的值,也可以选择不传参数,使用默认值1
1
2
3
4
5
6
7
8//url:http://localhost:8080/hw/say?100
//或者url:http://localhost:8080/hw/say
//使用form-urlencoded
public String say( Integer myId ){
return String.valueOf(myId);
}
//页面返回值:100使用JPA自动创建表时,有如下的yml配置
1
2
3
4
5
6
7
8
9spring:
jpa:
hibernate:
#第一次运行使用create自动生成表,一般使用update
ddl-auto: create
#控制台打印出SQL语句
show-sql: true
#使用MySQL方言,为了自动生成数据库时使用InnoDB
database-platform: org.hibernate.dialect.MySQL8Dialect相应的实体类的类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19/*
*注意,以下注解都为:'javax.persistence'包下
*/
//声明需要自动创建表的实体类
//指定表名,缺省值为驼峰类名的转换:lucky_money
public class MyEntity {
/*
*'@id' 指定主键
*'@GeneratedValue' 配置自增列,并声明自增策略
*详情参见:'https://blog.csdn.net/zhangli0910/article/details/83580855'
*/
private Integer id;
//必须有一个无参构造器
MyEntity(){}
//省略get和set方法@Transactional
用在映射方法上,使方法中的服务以事务执行// org.springframework.transaction.annotation.Transactional
RESTful API
最基本的API设计
请求类型 | 请求路径 | 功能 |
---|---|---|
GET | /context-path | 查询条目列表 |
POST | /context-path | 创建单个记录 |
GET | /context-path/id | 查询单个记录 |
PUT | /context-path/id | 更新单个记录 |
DELETE | /context-path/id | 删除单个记录 |