springboot 入门

本文介绍了SpringBoot的基本概念,展示了如何创建SpringBoot项目。接着详细讲解了配置文件的使用,包括读取配置项的多种方式和多环境配置。此外,还涉及了参数获取、MyBatis集成、静态资源处理、文件上传、统一异常处理、拦截器、AOP和事务管理等内容,是SpringBoot初学者的实用指南。
摘要由CSDN通过智能技术生成

springboot是什么

传统的开发模式下,无论是基于xml注解,都要做许多配置,如果项目中集成越多的其他框架,配置内容也会越多。为了让开发人员以最少的配置去开发应用,springboot诞生了。springboot的原则是约定大于配置能不配就不配)。

springboot还未spring项目提供了很多非功能特性,比如嵌入式tomcat。
创建springboot项目

点击File->New->Project,然后左侧选择Spring Initializr,输入相关项目信息,点击next,然后选择相关依赖,选择Spring Web,点击Create

在这里插入图片描述

springboot配置文件

实际开发中,经常需要用到自定义配置下面是以微信公众号开发时为例)。

/src/main/resources/application.yml

wechat:
 appid: wx123456789asdsad
 token: ca
 appSecret: a123b456c789d147e258f369
读取配置项的方式(一)

/src/main/java/com/asd/config/WeChat.java

@ConfigurationProperties("wechat") // 参数输入前缀。@ConfigurationProperties和@Value注解用于获取配置文件中的属性定义并绑定到Java Bean或属性中
@Component
public class WeChat {
   
	private String appId;
	private String token;
	private String appSecret;

	...getter setter
}

/src/main/java/com/asd/controller/HellowController.java

@RestController // 等同于@Controller + @ResponseBody
public class HellowController {
   
	
	// 注入WeChat实体类
	@Autowired
	private WeChat weChat;

	...
	@GetMapping("/getWeChat")
	public WeChat getWeChat() {
   
		return weChat;
	}
}

重启服务后,访问 localhost:8080/getWeChat :

{
   "appId":"wx123456789asdsad", "token":"ca", "appSecret":"a123b456c789d147e258f369"}
读取配置项的方式(二)

/src/main/java/com/asd/config/WeChatConfig.java

@Configuration // 标识这是一个配置类
public class WeChatConfig {
   

	@Bean // 这样的话springboot就自动帮我们注入weChat对象
	@ConfigurationProperties("wechat")
	public WeChat weChat() {
   
		return new WeChat();
	}
}

读取配置项的方式(三)

/src/main/java/com/asd/controller/HellowController.java

@RestController
public class HellowController {
   

	@Value("${wechat.appId}")
	private String appId;

	@Value("${wechat.token}")
	private String token;

	@Value("${wechat.appSecret}")
	private String appSecret;

	...
	@GetMapping("/getWeChat")
	public WeChat getWeChat() {
   
		WeChat weChat = new WeChat();
		weChat.setAppId(appId);
		weChat.setAppSecret(appSecret);
		weChat.setToken(token);
		return weChat;
	}
}
如果属性较少,可以用@Value。如果属性较多,建议用第一种或第二种。

在实际项目开发中,有时需要读取自定义的配置文件。新建自定义配置文件:

/src/main/resources/my.yml

wechat1:
 appid: wx123456789asdsad

/src/main/java/com/asd/config/MyWeChat.java

@PropertySource("my.yml")
@ConfigurationProperties("wechat1")
@Component
public class MyWeChat {
   
	private String appId;

	...getter setter
}

/src/main/java/com/asd/controller/HellowController.java

@RestController
public class HellowController {
   

	@Resource
	private MyWeChat myWeChat;

	...
	@GetMapping("/getWeChat2")
	public MyWeChat getWeChat2() {
   
		return myWeChat;
	}
}
springboot多环境配置

开发项目时,通常需要经历几个阶段。

  • 本地开发接口(本地开发环境,local)
  • 开发完后与前端做接口联调(前后端联调环境,dev)
  • 联调完后提交测试(测试环境,test)
  • 测试完后有些公司会预发布(预发布环境,pre)
  • 部署到线上(生产环境,prod)

不同的开发环境,属性配置一般都不一样。如果不做多环境配置,就得去频繁修改配置文件,这样有一定的安全隐患。比如在本地开发时,不小心连上线上数据库,这样会对线上数据库造成一定的数据污染。

在resources目录下创建各环境的配置文件,springboot在启动的过程中,首先会加载application.yml,其次去加载这N个不同环境配置文件中的某一个。

在application.yml中的属性名可以当做变量,即${
   }来进行引用。

application-local.yml

server:
 port: 8001

application-dev.yml

server:
 port: 8002

application.yml

wechat:
 appid: wx123456789asdsad
 token: ca
 appSecret: a123b456c789d147e258f369
 port: ${
   server.port}# 引用属性值,如果是引入local配置文件,其值就会是8001
spring:
 profiles:
  active: local #写你要启动的配置文件的后缀就行

获取参数

比如有实体类Student,他有name、age属性。
1)通过request对象获取参数

2)@RequestParam(针对请求头方式为x-www-form-urlencoded,比如form表单)

@GetMapping("/get")
public Student getById(@RequestParam Integer id,@RequestParam String name) {
   
	return id;
}
如果请求参数的name是id1,就得写成@RequestParam("id1")

3)@RequestBody(针对请求头方式为application/json)

@PostMapping("/save")
public Student save(@RequestBody Student student) {
   
	return student;
}

4)@PathVariable(接收url路径参数)

@GetMapping("/get/{id}")
public Student getById(@PathVariable Integer id) {
   
	return id;
}
若是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值