前言------为什么要有配置文件?
尽量不要将文件上传的路径以及经常需要修改的地方放到程序代码里面,因为如果上传路径以及相关的配置被修改的话,你就需要改写程序代码并重新编译,这在项目发布中是特别麻烦的。所以将相关的配置定义在属性配置文件中成为了一种很好的解决方式。
怎么去使用springboot的配置文件以及注入配置文件中的值?
首先进入springboot的application.properties配置文件中
定义好我们相关的配置的名称以及值
# tomcat\u7684URI\u7f16\u7801
server.tomcat.uri-encoding=UTF-8
#打印sql语句
logging.level.com.imooc.mapper=debug
#尽量把自己的配置定义在配置文件里 方便程序的修改
#定义自己的文件上传路径
web.upload.path=D://show_videos_dev
#定义音视频合成工具的路径
ffmepg.path=D:\\ffmpeg\\ffmepg\\bin\\ffmpeg.exe
#启动动态发布必须定义的mapping 映射
classpath_mapping=classpath:/META-INF/resources/
url_mapping=file:D:/show_videos_dev/
#定义小程序返回的几个视图
page_size=5
/**
*
* @author 2016wlw2 徐塬峰 创建时间:2018年6月28日 下午12:07:38
*/
@RestController
@Api(value = "视频相关的业务数据接口", tags = { "视频上传" })
@RequestMapping("/video")
public class VideoController extends BasicController {
@Autowired
private BgmService bgmService;
@Autowired
private VideoService videoService;
@Value("${web.upload.path}")
private String FILe_SPACE;
@Value("${ffmepg.path}")
private String FFMPEGEXE;
@Value("${page_size}")
private int PAGE_SIZE;
@ApiOperation(value = "用户上传视频", notes = "用户上传视频接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "String", paramType = "form"),
@ApiImplicitParam(name = "userId", value = "用户id", required = true, dataType = "String", paramType = "form"),
@ApiImplicitParam(name = "bgmId", value = "背景音乐id", required = false, dataType = "String", paramType = "form"), 可以不指定
@ApiImplicitParam(name = "videoSeconds", value = "视频时间", required = true, dataType = "double", paramType = "form"), // 参数类型为form
@ApiImplicitParam(name = "videoWidth", value = "视频宽度", required = true, dataType = "int", paramType = "form"),
@ApiImplicitParam(name = "videoHeight", value = "视频高度", required = true, dataType = "int", paramType = "form"),
@ApiImplicitParam(name = "desc", value = "视频描述", required = false, dataType = "String", paramType = "query"), // 可以不指定
@ApiImplicitParam(name = "videoCategory", value = "视频分类", required = false, dataType = "String", paramType = "query")// 可以不指定
})
@PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
public XyfJsonResult uploadFace(String userId, String bgmId, double duration, int tmpWidth, int tmpHeight,
String desc, String videoCategory, String videoFilter,
@ApiParam(value = "短视频", required = true) MultipartFile file) {
if (StringUtils.isBlank(userId)) {
return XyfJsonResult.errorException("用户id不能为空...");
}
// 文件保存命名空间
然后在控制器将配置文件中的属性注入到变量中来。
使用@Value注解
@Value("${web.upload.path}")
private String FILe_SPACE;
@Value("${ffmepg.path}")
private String FFMPEGEXE;
@Value("${page_size}")
private int PAGE_SIZE;
如果遇到相关的问题欢迎留言,我们可以一起探讨与学习。