开发技巧
连接数据库
mybatisplus配置
1.配置热部署,不至于每次更改代码都要重新加载整个项目,可以手动配置导入devtools依赖,然后每次更改代码后按ctrl+f9构建项目。
也可以自动部署,有点麻烦
在yml文件中配置devtools下的exclude中可以配置热部署的范围。
2.springboot文件中的引用
boot引用单个属性的时候可以使用@value(${})//一级.二级.三级,不支持松散绑定(就是文件中的属性名可以使用驼峰命名也可以使用烤肉串形式,大写小写都可以,包括赋值的字段名都可以大小写)
引用文件全部属性·的时候可以定义一个Environment 的变量使用自动加载然后用变量.getProperty(属性)//一级.二级.三级
引用文件的引用类型,可以使用@ConfigurationProperties(prefix=”属性名")//属性名为一级.二级 ,属性名只可以用全小写字母,下划线和数字形式,该注解支持松散绑定,此注解需要写在类上面,并且该类需要被spring管理,就是将此类变为bean对象,使用这个注解的时候需要导入一个spring-boot-configuration-processor依赖
3.springboot中jdk8提供的计量单位的使用
@Duration(ChronoUnit.Minutes) //以分钟为单位。可以更改为hours或者其他
private Duration Timeout;
@DataSizeUnit(DataUnit.MEGABYTES) //以兆为单位,可以更改其他单位
private DataSize dataSize;
4.bean属性校验
导入两个依赖validation-api,hibernate-validator
在bean对象的类上开启@Validated注解,在需要校验的属性上添加具体的规则,比如@Max(value= ,meassage=“ ”),@Min()
5.yml文件中int支持二进制八进制和16进制,8进制以0开头(如果是0127恰巧所有的值都在0-7,那么就会转换为十进制87),16进制以0x开头,如果需要的是字符串直接用双引号“‘ 防止进制转换出问题
6.测试属性
在@SpringbootTest注解中配置properties值,可以为当前的测试用例配置临时的属性。配置args属性值可以为当前测试用例添加临时命令行参数,执行优先级,args>properties>yml
@SpringBootTest(properties={"test."})
@SpringBootTest(args={"--test."})
7.在test类中配置临时的bean
用@Import(xxx.config.class)来导入外部的bean的config类和Spring一样
8.test中开启web环境
@SpringBootTest(webEnvironment=SpringBootTest.webEnvironment.Ran.....)
9.mybatisplus自动填充,在需要填充的字段上添上注解
@TableField(fill = FieldFill.INSERT_UPDATE)
//此处代表插入和更新的时候使用该字段,也可以单写INSERT或者UPDATE,根据情况写
10.消息转换(可以将long或者bigint类型的值转换为String后传输给前端处理,因为如果值过长js会省略后几位,也可以指定传输给前端的日期格式)
需要在MvcConfig中扩展消息转换器MvcConfig类需要继承WebMvcConfigurationSupport重写里面的extendMessageConverters()方法
11. 上传下载数据(文件传输一定是MultipartFile类型)
13.过滤器,放行不需要登录信息的页面(须在起动器上配置@ServletComponentScan注解)
14.拦截器,也可以配置拦截页面功能(需要配置两个类一个拦截器,第二个继承webmvcconfigurationSupport或者webmvcconfiger)
// 2023/2/6 1.判断threadlocal中有没有用户信息 User currentUser = BaseContext.getCurrentUser(); if (currentUser == null ) { // 2023/2/6 2.没有用户信息,拦截 return false ; } // 2023/2/6 3.有用户信息,放开 return true ; |
mvcconfig类
__EOF__

本文链接:https://www.cnblogs.com/liu-jin/p/17300629.html
关于博主:hello~好久不见,喜欢的话点个赞吧
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY