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也是从菜鸟阶段一步一步过来的。

你可能感兴趣的:(spring)