SpringBoot 初入门
2020-12-13 03:33
标签:方法 ted 自动 ace 配置 版本号 自己 ret request 关于介绍什么之类的就不讲了,主要做一下学习记录。 IDEA 启动 命令行启动: 先进行打包, 移动到项目的 target 目录下,可以看到一个后缀名为 jar 的文件,便是刚刚我们打包的 jar 包, 使用命令行启动: 使用 prod 环境。(多环境配置:使用开发和生产环境) 配置文件有两种写法: 推荐后一种写法,结构更清晰。 在配置文件中使用配置,如下写法: 然后传入参数: 如果配置项很多,并且相互联系,把配置放到对象类中,使用 application.yml: 对象配置类 LimitConfig.java : 属性注入 Controller.java : 配合: 或 总结: 举个例子: 可以在类上使用 springboot 操作数据库是通过 Spring-Data-Jpa 来实现的。 JPA(Java Persistence API)定义了一系列对象持久化的标准。 注意:在springboot 中的maven 依赖不用加版本号,springboot已经帮我们选定好了版本号。 建表也可以直接在 springboot 中建,不需要在数据库中建表。 在 springboot 中我们也不需要自己去实现增删改查的方法发,可以自定义个接口,继承 JpaRepository 类,再编写 controller 类实现接口就行了。 接口类: JpaRepositroy 参数中第一个是:定义的 Entity,第二个是主键的类型。 实现类: 事务操作一般都放在 service 文件下。 注意: 事务是指数据库的事务,不是指 java 事务, 具体代码:luckmoney SpringBoot 初入门 标签:方法 ted 自动 ace 配置 版本号 自己 ret request 原文地址:https://www.cnblogs.com/weixuqin/p/11079375.htmlSpringBoot 初入门
1. 启动方式
mvn spring-boot:run
mvn clean package
java -jar target/luckymoney-0.0.1-SNAPSHOT.jar
java -jar -Dspring.profiles.active=prod target/luckymoney-0.0.1-SNAPSHOT.jar
2. 配置文件
server.port=8081
server.servlet.context-path=/luckmoney
server:
port: 8081
servlet:
context-path: /luckmoney
3. 项目配置
a. 单个配置
@value
minMoney: 0.01
description: 最少要发${limit.minMoney}元,最多要发${limit.maxMoney} 元。
@Value("${minMoney}")
private BigDecimal minMoney;
b. 对象配置
@ConfigurationProperties
@Component
和 @ConfigurationProperties
。然后使用 @Autowired
方式自动注入 Controller。limit:
minMoney: 0.01
maxMoney: 9999
description: 最少要发${limit.minMoney}元,最多要发${limit.maxMoney} 元。
@Component
@ConfigurationProperties(prefix = "limit")
public class LimitConfig {
private BigDecimal minMoney;
private BigDecimal maxMoney;
private String description;
// getter 和 setter 方法
}
@RestController
@RequestMapping("/hello")
public class HelloController {
@Autowired
private LimitConfig limitConfig;
// 实现方法
}
4. Controller 的使用
名称
作用
@Controller
处理http请求
@RestController
Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller
@RequestMapping
配置url映射
@PathVariable
获取url中的数据
@RequestParam
获取请求参数的值
@Controller
可以在 springboot 模板注释中用到。@Conroller
和 ResponseBody
返回原来的 json。@ResponseBody
可以在方法上或类上使用。@Controller
+ ResponseBody
= @RestController
@RestController
@RequestMapping("/hello")
public class HelloController {
@Autowired
private LimitConfig limitConfig;
// RequestParam:地址栏得到 /say?id=1 这种,后两个属性是设置不传参默认为 0
@GetMapping("/say")
public String say(@RequestParam(value = "id", required = false, defaultValue = "0") Integer myId) {
return "id:" + myId;
}
// PathVariable:地址栏得到 /say1/1 这种
@GetMapping("/say/{id}")
public String say2(@PathVariable("id") Integer id) {
return "id:" + id;
}
}
@GetMapping
可以传数组。如:@GetMapping({"hello", "say"})
@RequestMapping("/xxx")
, 方法上使用 GetMapping("/yyy")
或 PostMapping("/yyy")
来达到:/xxx/yyy 的效果。
5. 数据库操作
1. maven 依赖:
2. 在 application.yml 中设置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/luckmoney?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
username: root
password: xxxx
jpa:
hibernate:
ddl-auto: update
# ddl-auto: create (create表示创建,update表示更新)
show-sql: true # 控制台打印sql语句
3. 建表:
@Entity
public class Luckmoney {
// 构造方法
public Luckmoney() {
}
@Id
@GeneratedValue
private Integer id;
private BigDecimal money;
// 发送方
private String producer;
// 接收方
private String consumer;
// getter 和 setter 方法
}
4. 增删改查
public interface LuckmoneyRepository extends JpaRepository
@RestController
public class LuckymoneyController {
@Autowired
private LuckmoneyRepository repository;
// 获取红包列表
@GetMapping("/luckmoneys")
public List
6. 事务操作
@Transactional
注解只是添加了执行,回滚的操作,具体的事务执行还是要根据数据库情况。比如有些数据库不支持事务,MySQL中 MyISAM 引擎是不支持事务的。
show engines;
alter table luckmoney ENGINE=InnoDB;
show create table luckmoney
7. 具体代码