Spring Boot
文章平均质量分 85
风流 少年
我走的很慢,但从不后退!
展开
-
Spring Boot入门教程: banner.txt
一:banner.txt在SpringBoot项目的resources目录下新建一个banner.txt文本文件,然后将启动Banner粘贴到此文本文件中,启动项目即可。二:在线制作banner很多公司的banner为自己公司的名称或者产品名称,所以通过文本获取banner是必要的,这里介绍几个在线制作banner的网站:1. http://patorjk.com/software/t...原创 2020-04-01 21:27:59 · 1191 阅读 · 0 评论 -
Spring Boot入门教程(五十七): Springboot + RabbitMQ实现消息延迟重试(DLX + TTL方式)
一:简介使用场景:调用第三方接口时如果调用失败需要隔几秒再去尝试下一次调用,直到调用N次还失败就停止调用。最常用的场景就是支付成功异步通知第三方支付成功。1. 为什么要调用多次?如果调用1次就成功了就停止调用,如果失败可能由于网络原因没有请求到服务器需要再次尝试,第二次很可能就会调用成功了。2. 为什么要间隔几秒再尝试下次调用?如果是因为网络原因没有请求到服务器如果再立刻调用,很可能...原创 2020-03-04 15:20:18 · 2243 阅读 · 0 评论 -
Spring Boot入门教程(四十):微信支付集成-刷卡支付
一:准备工作使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多。申请服务号(企业)开通微信支付开发配置 具体准备工作请参考Spring Boot入门教程(三十九):微信支付集成-申请服务号和微信支付二:支付方式刷卡支付(MICROPAY) 刷卡支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式...原创 2018-06-17 20:55:40 · 3357 阅读 · 4 评论 -
Spring Boot入门教程(三十九):微信支付集成-申请服务号和微信支付
一:简介I: 只有服务号才具备微信支付功能订阅号即使是认证的,也没有微信支付的申请的权限,登陆微信公众平台,在左侧列表没有申请微信支付这一搜索栏目。订阅号的主要功能是作为自媒体,发布信息;而服务号的定位是提供企业服务:包括推广、运营、服务等,通过名声实现销售,因此服务号的申请主体是除个人主体。服务号是针对于组织的,组织包括 政府、媒体、企业、其他组织 几个选项,开发中经常碰到的是...原创 2018-06-17 12:36:14 · 6429 阅读 · 4 评论 -
Spring Boot入门教程(三十五):支付宝集成-准备工作
一:注册账号、创建应用集成第三方的功能(无论是支付宝还是微信或者其他的都一样)的第一步一般都是要跑到其类似于开放平台的官网上进行注册账号,并创建应用提交审核,来获取应用的一些配置信息,如AppId、AppSecret。打开蚂蚁金服开放平台(https://open.alipay.com)并点击最顶端最右侧的【免费入住】按钮, 让后选择【自研开发者】【开始入住】,然后登录公司或者自己的支付宝...原创 2018-06-09 19:49:43 · 11253 阅读 · 9 评论 -
Spring Boot入门教程(四十三): API接口设计之token、timestamp、sign
一:token 简介Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个接口调用的账号,服务器会给出一个appId和一个key, key用于参数签名使用,注意key保存到客户端,需要做一些安全处理,防止泄露。Token的值一般是UUID,服务端生成Token后需要将t...原创 2018-06-24 13:22:43 · 11655 阅读 · 3 评论 -
Spring Boot入门教程(三十四): 导出Excel
1.引入依赖 org.apache.poi poi-ooxml 3.17 2. ExcelSheetSettingEnum定义Excel的一些配置信息public enum ExcelSheetSettingEnum { REPORT_TEST("report_test", "Excel文件名称", new String[]{&原创 2018-06-07 20:46:01 · 5116 阅读 · 0 评论 -
Spring Boot入门教程(三十八):支付宝集成-电脑网站支付和查询对账单下载地址
一:简介电脑支付常用于电商和后台管理系统的账户充值等场景。电脑网站支付 文档电脑网站支付流程图 二:集成步骤1. dependency<dependencies> <dependency> &a原创 2018-06-14 18:21:47 · 7290 阅读 · 30 评论 -
Spring Boot入门教程(三十七):支付宝集成-手机网站支付
一:简介手机网站支付用于HTML5应用,常见于微信公众号上的应用。手机网站支付文档手机网站支付的流程图:用户点击H5应用中的支付按钮点击支付按钮会请求后台接口,后台接口请求支付宝的支付接口,支付接口会返回一段html代码其中包括一个form表单和一段js代码用于自动提交表单,表单提交后就会自动跳转到支付宝的支付页面(如果手机中装了支付App就去打开APP,如果没有就在网页版支付...原创 2018-06-13 20:06:41 · 15757 阅读 · 39 评论 -
Spring Boot入门教程(三十六):支付宝集成-当面付
一:简介当面付分为三种,不同的方式有着不同的使用场景,当面付的字面含义是面对面的付也就是买家当着卖家的面来付款。其中条码支付和扫码支付使用的最多,本文主要介绍这两种。当面付条码支付(商家使用扫码设备扫描买家支付宝的付款码):使用场景为商家使用扫码枪等条码识别设备扫描用户支付宝钱包上的付钱-条码/二维码,完成收款。一般在超市、便利店、店铺等使用。扫码支付(买家使用支付宝扫一扫扫描卖家...原创 2018-06-11 18:12:22 · 11915 阅读 · 46 评论 -
Spring Boot入门教程(二十七): Mail
发送简单邮件。发送html格式的邮件发送带附件简单邮件发送模板邮件。1. pom.xml发送模板邮件需要用到spring-boot-starter-thymeleaf,其他其他邮件内容不需要该依赖<dependency> <groupId>org.springframework.boot</groupId> <...原创 2018-04-06 22:07:36 · 1602 阅读 · 0 评论 -
Spring Boot入门教程(二十六): 定时任务
一:简介定时任务分为静态定时任务和动态定时任务静态定时任务::依赖于spring-context,静态定时任务将定时时间直接使用注解@Scheduled注解到要定时的方法上,绑定过于耦合,一旦应用启动定时任务就开始了,中间要想更改定时任务(如更改定时时间、更改定时任务相应的逻辑调整等)必须停止服务,手动更改代码重新部署才可,静态定时任务通常用于实现简单的定时任务计划动态定时任务:依赖于...原创 2018-04-06 11:33:52 · 1469 阅读 · 0 评论 -
Spring Boot入门教程(二十四): Kafka
1. pom.xmlKafka并没有提供对应的Starter,而是使用的spring-kafka<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></depende...原创 2018-04-04 10:54:44 · 881 阅读 · 0 评论 -
Spring Boot入门教程(二十五): Apache Shiro
shiro原创 2018-04-05 19:01:39 · 843 阅读 · 1 评论 -
Spring Boot入门教程(四十一):微信支付集成-扫码支付
一:准备工作使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多。申请服务号(企业)开通微信支付开发配置 具体准备工作请参考Spring Boot入门教程(三十九):微信支付集成-申请服务号和微信支付二:开发文档扫码支付文档三:集成步骤1. 引入依赖&amp;amp;amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;a原创 2018-06-18 14:21:44 · 11245 阅读 · 31 评论 -
Spring Boot入门教程(四十二):微信支付集成-H5支付
一:开发文档场景介绍H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。主要用于触屏版的手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。申请入口:登录商户平台–&amp;amp;amp;amp;amp;amp;gt;产品中心–&amp;amp;amp;amp;amp;amp;gt;我的产品–&amp;amp;amp;amp;amp;amp;gt;原创 2018-06-18 21:15:13 · 10642 阅读 · 25 评论 -
Spring Boot入门教程(四十四): Sharding-JDBC+JPA|MyBatis+Druid分库分表实现
一:数据库分片方案客户端代理: 分片逻辑在应用端,封装在jar包中,通过修改或者封装JDBC层来实现。 当当网的 Sharding-JDBC 、阿里的TDDL是两种比较常用的实现。中间件代理: 在应用和数据中间加了一个代理层。分片逻辑统一维护在中间件服务中。 我们现在谈的 Mycat、360的Atlas、网易的DDB等等都是这种架构的实现二:Sharding-JDBCShar...原创 2018-07-23 22:31:08 · 12487 阅读 · 6 评论 -
Spring Boot入门教程(五十七): HTTPS
现在API接口一般要使用https协议,可以通过nginx反向代理实现,也可以让Spring Boot支持https协议。一:证书文件获取方式从第三方可信证书认证商购买从云服务器免费申请(免费1年)自己生成(仅用于开发测试,浏览器会提示不安全)使用JDK自带的命令keytool生成证书文件keytool -genkey -alias tomcathttps -keyalg RS...原创 2019-09-04 16:07:33 · 8402 阅读 · 3 评论 -
Spring Boot入门教程(五十五): WebSocket
一:HTTP和WebSocketHTTP : 客户端 -> 服务器端传统客户端(浏览器)向服务器获取数据只能使用http主动向服务器拉数据,因为http只能从客户端发起请求,没办法从服务器端发起请求。项目中如果要即时的获取消息就只能写个定时器,每隔几秒钟去向服务器发一个http请求,获取最新的数据。http虽然是短连接,但是定时每隔几秒钟去定时发请求,会不断的占用请求,当客户端从服务端没...原创 2019-04-09 20:15:31 · 1340 阅读 · 3 评论 -
Spring Boot入门教程(五十四): ETL kettle
下载 Data Integration下载地址:https://sourceforge.net/projects/pentaho/files/Data Integration/ 选择最新的版本下载,这里最新版本为7.1,下载并解压 pdi-ce-7.1.0.0-12.zip注意:Data Integration是用Java开发的,是不系统的,Windows、MacOSX都一样。将m...原创 2019-04-04 20:39:31 · 5734 阅读 · 8 评论 -
Spring Boot入门教程(五十三): 极光推送Java-SDK
pom.xml<!-- 极光推送 begin --><dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.3.10</version>&...原创 2019-04-02 14:48:26 · 2359 阅读 · 3 评论 -
Spring Boot入门教程(五十六): Spring Session
一:Web容器SessionHTTP是无状态协议,服务器端要想记住客户端的状态需要通过Session和Cookie来完成。Session是由Web服务器端(Tomcat)维护,Cookie是由客户端(浏览器)维护,浏览器每次请求都会自动携带Cookie信息,当服务器端首次往session中存储值时(session.setAttribute(name, value)),服务器端(Tomcat)会...原创 2019-04-11 10:48:53 · 12572 阅读 · 3 评论 -
Spring Boot入门教程(五十二): 在Docker上运行Spring Boot
一:安装JDK和Maven安装openjdk: yum -y install java-1.8.0-openjdk*export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64export MAVEN_HOME =/usr/local/maven3export PATH=$PATH:$JAVA_...原创 2018-11-21 17:03:51 · 879 阅读 · 0 评论 -
Spring Boot入门教程(五十一): JSON Web Token(JWT)
一:认证在了解JWT之前先来回顾一下传统session认证和基于token认证。1.1 传统session认证http协议是一种无状态协议,即浏览器发送请求到服务器,服务器是不知道这个请求是哪个用户发来的。为了让服务器知道请求是哪个用户发来的,需要让用户提供用户名和密码来进行认证。当浏览器第一次访问服务器(假设是登录接口),服务器验证用户名和密码之后,服务器会生成一个sessionid(只...原创 2018-11-14 14:00:43 · 12077 阅读 · 6 评论 -
Spring Boot入门教程(四十九): Dubbo
一:简介Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。二:XML方式① dubbo-interfacepackage com.example.api;public interface DemoService { St...原创 2018-09-21 17:38:42 · 2047 阅读 · 1 评论 -
Spring Boot入门教程(五十): httpclient
引入依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.httpcomponents&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;httpclient&amp;lt;/artifactId&amp;g原创 2018-10-12 10:39:23 · 4153 阅读 · 0 评论 -
Spring Boot入门教程(四十六): @Async
一:简介ThreadPoolTaskExecutor 用于定义线程池,是对java.util.concurrent.ThreadPoolExecutor类的包装。可以通过@EnableAsync来开启异步支持,通过@Async来声明一个异步方法二:示例@Configuration@EnableAsyncpublic class AsyncConfiguration implemen...原创 2018-09-03 11:45:39 · 700 阅读 · 0 评论 -
Spring Boot入门教程(四十八):初始化操作 CommandLineRunner和ApplicationRunner
CommandLineRunner和ApplicationRunner在SpringApplication.run()之前,在所有的beans加载完成之后执行,用于执行一些初始化操作(如加载缓存、读取配置文件、创建线程池等)CommandLineRunner和ApplicationRunner的功能差不多,不同的是run接口的参数,CommandLineRunner#run(String… a...原创 2018-09-11 16:52:09 · 1449 阅读 · 0 评论 -
Spring Boot入门教程(四十五): 事务@Transactional
@RestController@RequestMapping(&amp;amp;amp;amp;amp;amp;amp;amp;quot;/orders&amp;amp;amp;amp;amp;amp;amp;amp;quot;)public class OrderController { @Autowired private OrderService orderService; @PostMapping(&amp;amp;amp原创 2018-09-02 11:17:16 · 1598 阅读 · 0 评论 -
Spring Boot入门教程(三十三): Actuator
一:简介在Spring Boot的众多Starter POMs中有一个特殊的模块,它不同于其他模块那样大多用于开发业务功能或是连接一些其他外部资源。它完全是一个用于暴露自身信息的模块,所以很明显,它的主要作用是用于监控与管理,它就是:spring-boot-starter-actuator。spring-boot-starter-actuator模块的实现对于实施微服务的中小团队来说,可以...原创 2018-04-11 18:14:28 · 16195 阅读 · 0 评论 -
Spring Boot入门教程(二十九): 缓存(ehcache)
Spring Boot的cache支持多种缓存,其中常用的有EhCache和Redis,而Redis有专门的依赖,EhCache和Redis最大的不同是EhCache不依赖什么第三方软件,而redis还要启动Redis服务器,这里只将EhCache 如果不熟悉EhCache,请看这篇文章 ehcache入门基础示例1. pom.xml&lt;dependency&gt; &l...原创 2018-04-09 11:36:19 · 1088 阅读 · 0 评论 -
Spring Boot入门教程(十二): MongoDB 主从
1. 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency><depende...原创 2018-03-27 20:50:39 · 1098 阅读 · 0 评论 -
Spring Boot入门教程(十一): MongoDB
Spring Boot中可以通过在pom.xml中加入spring-boot-starter-data-mongodb引入对mongodb的访问支持依赖。它的实现依赖spring-data-mongodb。1. 引入依赖<dependency> <groupId>org.springframework.boot</groupId> ...原创 2018-03-27 19:20:12 · 1377 阅读 · 0 评论 -
Spring Boot入门教程(十): Redis
1. 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency>原创 2018-03-27 17:48:27 · 1530 阅读 · 2 评论 -
Spring Boot入门教程(九): MyBatis多数据源(主从数据库)
1. 引入依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version&g原创 2018-03-26 20:03:19 · 1287 阅读 · 1 评论 -
Spring Boot入门教程(八): MyBatis
代码地址:https://github.com/mengday/springboot-mybatis-example一:集成MyBatis1. 引入依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</art...原创 2018-03-26 17:03:46 · 2134 阅读 · 2 评论 -
Spring Boot入门教程(七): Swagger2
1. 添加入Swagger2的依赖&amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;gt;io.springfox&amp;amp;amp;amp;lt;/groupId&amp;amp;amp;amp;gt; &amp;amp;amp原创 2018-03-24 19:22:13 · 4311 阅读 · 1 评论 -
Spring Boot入门教程(六): 日志Log
一:简介集成logback需要添加spring-boot-starter-logging依赖,而此依赖已经在spring-boot-starter中添加过了,所以不用再添加此依赖了。默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台, # 输出格式是:时间(精确到毫秒) 日志级别(FATAL, ERROR, WARN, INFO, DEBUG,...原创 2018-03-23 16:36:45 · 5201 阅读 · 1 评论 -
Spring Boot入门教程(五):@SpringBootApplication
自动配置Spring使用@Configuration作为配置的注解,其实这个注解没什么东西,使用@Component作为元注解,和@Service、@Repository差不多,只是起了一个新的名字,表示了更具体的含义,当Spring发现某个类使用了@Configuration标注了,就去将该类下使用@Bean注解的方法创建bean并放入到容器中。@Configuration@Ta...原创 2018-03-20 20:51:30 · 2482 阅读 · 0 评论 -
Spring Boot入门教程(四):配置文件
配置方式每个starter都有自己默认的配置,如果需要改变默认值,可以在其他地方配置来覆盖掉默认的值,覆盖默认的配置有多种方式,每种方式的优先级也不同,如果在多个地方配置则优先使用优先级高的值,其中命令行参数优先级最高, 其中大部分参数一般都配置在属性文件application.properties中,属性文件即可以覆盖starter中默认的值,也可以自定义值在命令行行输入的参数SPR...原创 2018-03-20 19:49:54 · 4048 阅读 · 2 评论