链接:https://www.zhihu.com/question/269302405/answer/348804407
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
推荐 SSM(Spring + SpringMVC + MyBatis),这个真没啥好说的;或者 Spring + SpringMVC + Spring Data Jpa
用 SpringBoot 进行项目构建的话,很多东西会处理得非常好。
比如版本冲突问题:A.jar 依赖了 B.jar 然后 C.jar 也依赖了 B.jar,不同的包之间关联得很复杂,如果自己去配置的话,出现 B.jar 版本不一致的情况就会出现极多的莫名 BUG,而 SpringBoot 对这方面管理做得很好,拆箱即用真的很舒服。
比如配置问题:以前用 Spring 的时候会有很多 .xml 的配置文件,项目管理起来会出现很多复杂的文件和结构,而且风格其实很难看。SpringBoot 推崇使用 Annotation(注解)进行配置,利用一个 .porperties 或 .yml 文件即可搞定很多常量的配置,利用注解可以指定初始化 bean,很多地方都会显得「一目了然」。而且解析 Annotation 会比解析 xml 文件速度更快。
----------------
再说说 MVC 这块。MVC 以前是用 Struct 来做的,现在主流的是 SpringMVC。SpringMVC 的好处有很多,也是借助了 Annotation 的强大优势, @Controller、@RestController、@RequestBody、@ResponseBody 就可以完成控制器、RESTful 风格的控制器、请求数据转化(JSON 转 POJO)、返回数据 JSON 化的功能,不需要额外任何代码,只需要一个注解,省配置。
另外比较推荐一个 GitHub 上 star 数很多的 MVC 框架:
lets-blade/blade这个框架是我无意中了解到的,很好用,性能很不错,基于 Netty 做的,可以完美嵌入 Spring 家族。
----------------
最后说说 ORM 这里。常用的是 MyBatis,以前的 Hibernate 已经被广大群众公认的淘汰了。建议用些 generator 去自动生成代码,要不然写起来很累,毕竟数据库大多都是简单的 CRUD。
另外 Spring 官方开始大力推崇 Spring Data Jpa 这个 ORM 框架,貌似很不错的样子,我试着用了,如果对性能要求不太高的话用 Jpa 可以极大地加快开发速度(少些很多代码,免去设计数据库等很多操作,毕竟 Spring Data Jpa 是基于 Hibernate 的)。