srpingboot配置相关
利用maven启动项目
mvn spring-boot:run
项目打包
mvn clean package
java -jar 启动jar文件
配置文件
yml
server:
port: 8080
servlet:
context-path: /hello 项目路径
与配置类相对应
limit:
minMoney: 2
maxMoney: 9999
desc: 最少要${limit.minMoney},最多${limit.maxMoney}
配置类:
注解
@Component
@ConfigurationProperties(prefix = “limit”)
多配置文件
application.yml
application-dev.yml 测试
application-prod.yml 生产
在application.yml中设置
spring:
profiles:
active: dev ------------指定执行哪个文件
Controller使用
-
@RestController
以json格式返回结果
-
@GetMapping({"/sayHello", “/sayHi”})
可以使用数组 http://localhost:8080/hello/sayHi http://localhost:8080/hello/sayHello 等价 @GetMapping("/sayHello") springboot2.x @RequestMapping(value = "sayHello", method = RequestMethod.GET) springboot1.x
-
@RequestMapping("/say")
设置当前文件的访问路径,此时路径为http://localhost:8080/hello/say/Hello
-
@PathVariable
- 获取ulr中的数据
@GetMapping("/getId/{id}") public String getData(@PathVariable("id") Integer id){ return "id:" + id; }
- ulr路径
http://localhost:8080/hello/say/getId/100 输出 id:100
- 获取ulr中的数据
-
@RequestParam
-
获取url中的参数
@GetMapping("/getId")
public String getId(@RequestParam("id") Integer id){
return "id:" + id;
}
- ulr路径
http://localhost:8080/hello/say/getId?id=50 输出 id:50 - value 参数名称 required 是否必传 defaultValue 默认值
@RequestParam(value = "id", required = false, defaultValue = "0") Integer id
数据库相关
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
配置文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver --------数据库驱动
url: jdbc:mysql://localhost:3306/luckymoney?serverTimezone=GMT&characterEncoding=utf8 --第一个设置时区,第二个设置编码
username: root
password: root
jpa:
show-sql: true ---展示sql
hibernate:
ddl-auto: update ---更新数据库而不是创建
实体类
- 类注解:@Entity
- 主键注解:@Id 主键 @GeneratedValue自增
数据库接口
第一个参数:实体类 第二个参数 主键类型
public interface LuckymoneyRespository extends JpaRepository<Luckymoney, Integer> {}
增删改查
respository.findAll() 查询所有返回一个List
respository.save(luckymoney) 新增一条记录或修改一条记录
respository.findById(id) 根据id查询一个
respository.findById(id).orElse(null) 如过查询不到返回null,查到返回值为Optional<Luckymoney> optional
if (optional.isPresent()) { //判断optional里边是否与内容
Luckymoney luckymoney = optional.get(); //get获取查询到的内容
luckymoney.setConsumer(consumer);
return lockymoneyRespository.save(luckymoney); //此时save时更新
}
事务
- 事务注解 @Transactional 对应的包:org.springframework.transaction.annotation.Transactional
- 数据库引擎 InnoDB