spring boot 初学者容易遇到的坑和技巧

一、start.spring.io网站生成的源码导入eclipse后没有jre依赖库的问题

在项目上右键,也没有buildpath选项,项目文件位也没有maven项目特有的蓝色M角标

原因:缺少.project和.classpath文件

解决办法:转到 项目根目录下,用maven build一下项目(运行 mvn -up,或 mvn -b 命令),完成项目的初始化,然后关闭项目,再重新打开项目,就OK了

二、 用curl -X POST/DELETE/GET...时,遇到 不支持 method 的异常

curl是命令行下调试web应用非常好用的工具。当然,如果想在图形界面进行web调试,可以选择大名鼎鼎的postman^_^

原因:spring 注解没有写对,如:把@PutMapping("/{id}"),写成了 @PutMapping("{/id}")

注意上面两个注解中 "/"和"{"符号的位置


	//更新一部电影
	@PutMapping("/{id}")
	public TvSeriesDto updateOne(@PathVariable int id, @RequestBody TvSeriesDto tvSeriesDto) {
		if (id == 101 || id == 102) {
			return createTvWestHero();
		} else
			throw new ResourceNotFoundException();
	}

三、使用Log或Logger时,比较好的做法是先验证,再使用

即:先用 isTraceEnabled 或 isDebugEnabled、isInfoEnabled、isWarnEnabled、isErrorEnabled等等,检查 Log级别,再输出Log信息,这样可以提高一点点的运行效率

比如:

public static final Log log = LogFactory.getLog(TvSeriesDto.class);
    
public void doSomething(){

	if(log.isTraceEnabled()) {
		log.trace("追踪信息");
	}
//....do something
}

四、项目目录要有良好的层次

大体主要有两种分层的方法:

一种是按业务类型分,比如:所有和用户相关的类(包含Interface、POJO、JavaBean、DAO、DTO、Service等等)全部放到users目录下,和 财务 相关的类,全部放到 finance 目录下。

另一种是按类的类型分,比如:所有POJO都放到entity目录下,所有 持久层都放到 dao目录下,所有 业务逻辑类 都放到 service目录下等等

个人比较倾向于:主要用第一种,辅以第二种,即按业务区分划分目录,在每一项业务目录下,再按类的类型划分目录。原因:spring boot发展方向是微服务框架,第一种方法可以把各项业务部署到不同的服务器上,更符合微服务的理念(个人理解,不一定对)

五、一定不要拼音和英文混用,更不要用汉字

对于初学者,特别是英文学得不好的初学者,一定要克服畏难情绪,从一开始就养成用英文的习惯。必要时下载一个即时翻译软件比如:谷歌翻译、百度翻译等等,等过了开始时的阶段后,所谓的编程用英语也就那么多单词和语法,不过而而.....(开个玩笑)

其实,我认为用英文编程的主要原因是从操作系统、编译器、编辑器,再到IDE、Debug、浏览器工具,占主流的全都是外国人开发的(有国人开发的,但对程序员而言,国人开发的工具软件比例实在有点低),那么问题来了,外国人开发的软件,是按照外国人的思维方式和习惯设计的,一些提高效率的功能能起作用的前提是函数、类、方法、属性都是英文的,最最最最最最主要的,网上几乎所有有用的编程资料都是英文的(仅指有价值的、可以解决问题的资料),再加上软件的help、docs基本都是英文的,要想成为真正的大牛,从编程用的英文开始吧^_^......

结论:为了以后的开发效率,从一开始就要养成用英文的习惯,哪怕用的单词让senior不屑一顾也无所谓(比如我在上面提到的一些有问题的、不合惯例的用词^_^),因为senior也是从菜鸟阶段一步一步过来的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值