SpringBoot项目开发(一):开篇


1.新开了一个 SpringBoot 项目开发系列博客,项目开发中遇到的问题与解决方案分享给大家。 2000 年左右 Java 行业中都是 EJB 的天下,但是 EJB 本身比较庞大复杂,各企业使用起来并不是很便利,于是2002年 Rod Johnson 发布我们所知的 Spring 框架的基础。接下来 Spring 发展迅速,平均两三年就会发布一个新版本,直到最近 9 月份推出的 Spring 5.0,Spring 也从一个小小的开源软件发展为 Java 界第一个框架

2.Spring 在不断发展的过程中也出现了一些问题,需要的配置文件也越来越多,而且大部分是重复的配置,也经常因为配置文件配置错误产生很多问题。慢慢 Spring 变成了一个大而全的框架,背离它简洁开发的理念。Spring 也意识到了这些问题,急需有这么一套软件可以解决这些问题,这个时候微服务的概念也慢慢兴起,Spring 站在了这么一个高度上开发了一个全新的技术栈:Spring Boot。

3.最近几年流行微服务,SpringCloud是微服务的标准,而SpringBoot是SpringCloud的基础,参考了《Spring Cloud微服务实战》《Spring Cloud与Docker微服务架构实战》在程序员DDD的博客看了很多篇博客,实际开发后才发现它的庞大,研究还行,落地到项目中就有很多需要做的了,微服务涉及到如下图中的基础设施

4..架构设计的主要目的是为了解决软件系统复杂度带来的问题,架构设计因遵循:合适原则,简单原则,演化原则 因SpringBoot方便、快速、少配置,决定用它来开发项目,随着业务与需求和复杂度的增加,开发人员的配置,以后能快速升级到SpringCloud微服务体系中

Spring Boot 由 Spring、Spring MVC 演化而来,注解也继承自 两者。下面我们看下 Spring MVC 中常用的注解:

- @Controller:该注解用于类上,其表明该类是 Spring MVC 的 Controller;

- @RequestMapping:该注解主要用来映射 Web 请求,其可以用于类或者方法上;

- @RequestParam:该注解主要用于将请求参数数据映射到功能处理方法的参数上;

- @ResponseBody:该注解的作用是将方法的返回值放在 Response 中,而不是返回一个页面,其可以用于方法上或者方法返回值前;

- @RequestBody:用于读取 HTTP 请求的内容(字符串),通过 Spring MVC 提供的 HttpMessageConverter 接口将读到的内容转换为 JSON、XML 等格式的数据并绑定到 Controller 方法的参数上;

- @PathVariable:用于接收请求路径参数,将其绑定到方法参数上;

- @RestController:该注解是一个组合注解,只能用于类上,其作用与 @Controller、@ResponseBody一起用于类上等价。

5.这个系列会分享些什么内容 - 基于 SpringBoot 搭建一个属于你的Web开发框架

- 集成**Hikari**:号称Java平台最快的数据库连接池,有网友对一些[连接池做过对比](https://blog.csdn.net/u011389515/article/details/76578129),请[自行查看](https://blog.csdn.net/u011389515/article/details/76578129)

- Thymeleaf:Html模板引擎,替代 JSP

- Mybatis:是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射

- Redis:完全开源,是一个高性能的 **键值** 数据库,丰富的数据类型,**数据可持久化**,服务器宕机后不用人工恢复,往往缓存用户会话和各业务都需读的数据,可缓解数据库压力

- Mongodb:开源,京东商品存储、百度网盘大量使用。是一个基于分布式文件存储的 **文档** 数据库,分片+副本集可组成一个高可用集群,直接海量数据,而且高性能。分片指将数据库拆分,副本集可以理解为数据库的主从,支持读写分,适合存储大量商品数据

- RabbitMQ:开源的消息队列中间件,支持消息的持久化、负载均衡和集群,且集群易扩展,可在集群中配置某些节点数据持久在内存上,某些节点把数据持久在硬盘上,换来高性能,具有一个Web监控界面,易于管理

- 分布式锁:分布式系统中,大量用户抢购某一商品,为防止商品超出库存,保证数据的准确性就需分布式锁了,因为分布式环境是多 **进程** ,项目中基于redis实现 -

- 分布式限流:高可用,保障系统能稳定提供服务

优质内容筛选与推荐>>
1、VS2005第一天 Failed to access IIS metabase
2、Codeforces Round #552 (Div. 3)-C-Gourmet Cat
3、Linux基础操作(一)
4、Ajax标签导航效果. (转载自:蟋蟀博客)
5、[Swift]归并排序 | Merge sort


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号