:herb: 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等:pushpin:
欢迎大家留言和PR~
Tip: 技术更新换代太快,本仓库仅做参考,自己的项目具体使用哪个版本还需谨慎思考~(不推荐使用最新的版本,推荐使用(最新-1|2)的版本,会比较稳定)
自己很早就想搞一个总的仓库就是将自己平时遇到的和学习到的东西整合在一起,方便后面用的时候快速的查找与使用,之前是通过branch 的方式去整理,感觉不直观,一咬牙就花了点时间将所有的分支整合在一起(之前使用branch方式的兄dei,这里对不住了,你们可以将之前的干掉,重新克隆总的),方便自己也方便大家参考,以下是我的相关博客,有兴趣的 可以去浏览浏览,觉得对自己有点启发或者解决了一些问题,可以点个赞~
. ├── README.md ├── pom.xml ├── quick-activemq ├── quick-activemq2 ├── quick-async ├── quick-batch ├── quick-cache ├── quick-config-encrypt ├── quick-docker ├── quick-dubbo ├── quick-dynamic-bean ├── quick-exception ├── quick-feign ├── quick-hbase ├── quick-img2txt ├── quick-jdbc ├── quick-jpa ├── quick-jsp ├── quick-jwt ├── quick-kafka ├── quick-log ├── quick-logback ├── quick-lombok ├── quick-modules ├── quick-monitor-thread ├── quick-multi-data ├── quick-multi-rabbitmq ├── quick-mybatis-druid ├── quick-oauth2 ├── quick-okhttp ├── quick-oss ├── quick-package-assembly ├── quick-package-assembly-multi-env ├── quick-rabbitmq ├── quick-redies ├── quick-rest-template ├── quick-rocketmq ├── quick-starter ├── quick-starter-demo ├── quick-swagger ├── quick-vue ├── quick-vw-crawler └── quick-wx-public
基于springboot的快速学习示例
已经将爬虫模块迁移到crawlers
注意:如果接受参数是已@RequestBody方式并且参数中包含日期类型的参数,可在对应模型的日期属性上面添加
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")注解 如
java @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",locale = "zh" , timezone="GMT+8") // 注意时区的设置 private Date birthday; // 出生日期
swagger升级到2.7版本,添加了使用swagger验证功能,注意这里不是auth2鉴权
java线程池Executor的示例 点我
springboot 模块化开发示例
springboot整合mybatis和阿里云的druid监控功能,日志可以控制sql的输出 添加springboot的health监控,链接如下
| HTTP方法 | 路径 | 描述 | 鉴权 | |---|---|---|---| | GET | /autoconfig | 查看自动配置的使用情况,该报告展示所有auto-configuration候选者及它们被应用或未被应用的原因 | true | | GET | /configprops | 显示一个所有@ConfigurationProperties的整理列表 | true | | GET | /beans | 显示一个应用中所有Spring Beans的完整列表 | true | | GET | /dump | 打印线程栈 | true | | GET | /env | 查看所有环境变量 | true | | GET | /env/{name} | 查看具体变量值 | true | | GET | /health | 查看应用健康指标 | false | | GET | /info | 查看应用信息 | false | | GET | /mappings | 查看所有url映射 | true | | GET | /metrics | 查看应用基本指标 | true | | GET | /metrics/{name} | 查看具体指标 | true | | POST | /shutdown | 允许应用以优雅的方式关闭(默认情况下不启用) | true | | GET | /trace | 查看基本追踪信息 | true |
springboot整合spark示例 已抽离 点我
mybatis.mapperLocations=classpath:mapper/*.xml这里需要注意一下
程序 依赖包 分开化的多环境部署
apache的文本抽取开源框架,整合到springboot中
关于es搜索的相关内容 现在在学习Elasticsearch+Logstash+Kibana 后续会有相关博文、和代码示例~
注意:想要用好es,搜索是关键 移步这里
前方预警!!!!
- 验证码识别 使用easyocr(项目地址)提供的api接口,可以识别验证码,这简直是小虫子的福利,就问你怕不怕!(现在收费了。。。)
spring下的批量处理大数据模块,这里是从mysql里读取然后再写入mysql中,可以借鉴下,来源https://github.com/geekyjaat/spring-batch
rabbit模块 做了个接口服务
应网友@Android-BRUCE 的要求,添加了延迟队列的处理方式,包括针对消息和针对队列的处理方式
一定要把图看懂。。。 友情提示:如果在刚开始queue与exchange绑定错了强烈建议从Rabbit管理页面上删除对应的配置再测试!!!
springboot下统一处理异常方法,即,在请求没到达对应controller报错之后的处理方法,比如404,400和500错误,此处返回的是json字符串,页面的暂时没有
自己开发的小程序(哇哦窝)使用到的api,非常简单,里面集成了阿里封装的httpclient工具包,挺好用的。
前段时间一直没有搞定在springboot中使用jsp,今天抽了点时间搞定了,有几点需要注意的地方
xml org.springframework.boot spring-boot-maven-plugin repackage org.apache.maven.plugins maven-war-plugin false src/main/webapp META-INF/resources **/** src/main/resources **/** false
工作上用到了redis,就添加了redis模块,很简单有key就获取,没有就插入
此处的不是Apache 的Rocketmq,是阿里云服务上的一个消息队列
springboot內置的日志管理模块,使用slf4j
使用docker部署springboot的示例demo,更多内容请见blog
根据条件动态的创建bean 用到的场景:有的时候本地测试不想使用mq,可以在将mq对应consumer bean 加上contional注解,并 配置条件
2019年03月14日00:12:54更新 动态创建bean的方式: - 动态设置属性; - 动态设置属性文件,来改变要生成bean上的注解内容,如@Jmslistener(des="${key}"),我们可以动态改变key来生成不同的bean
整合dubbo,用的不是官方的dubbo-stater,用的是这个https://github.com/halober/spring-boot-starter-dubbo 配置很详细 注意dubbo的结构
结合比较流行的框架SpringBoot抓取CSDN的数据(有关的Spingboot的使用可以参考这里) 有关VW-Cralwer的介绍可以看这里,简单轻便开源的一款Java爬虫框架。
单独使用feign做为请求http接口的客户端工具
(后面会持续更新)
配置加密功能(待完成)
参考https://github.com/murraco/spring-boot-jwt 添加的jwt模块,实现网站的简单鉴权
使用docker搭建hbase环境,springboot集成hbase client,完成基本的CURD;
使用docker搭建的kafka环境,springboot集成kafka,完成消息的接受和发送
一个开发xxx-starter的示例,帮助你快速开发和部署自己的xxx-starter
如果您自己想在本地跑一跑,可以将其checkout到本地,直接
mvn clean install -U就ok了,如果您只想运行某个模块,直接复制配置文件和代码就ok了,如果您在测试某个模块但该模块出错,请尽快联系本人,邮箱:[email protected],我会在第一时间将其修复
欢迎star、fork 和 pr