springboot在不配置thymeleaf相关属性的情况下,会提示如下的问题 DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ 这是你只需要在你的application.yml或application.properties文件中添加如下配置即可消除 spring: thymeleaf: check-template-location: false…
本篇和大家分享jwt(json web token)的使用,她主要用来生成接口访问的token和验证,其单独结合springboot来开发api接口token验证很是方便,由于jwt的token中存储有用户的信息并且有加密,所以适用于分布式,这样直接吧信息存储在用户本地减速了服务端存储sessiion或token的压力:如下快速使用: <!--jwt--> <dependency> <groupId>io.jsonwebtoken</groupId> <…
转载直: 使用JWT设计SpringBoot项目api接口安全服务…
目前已经使用Vertx已经一年多了,虽然没有太多的造诣,但也已在项目中推广了下:从最初的vertx搭建web服务,到项目上线运营,还算比较稳定.再到后来尝试搭建基于vertx的分布式服务,一路下来也积累了些经验,在这里也从几个方面来聊一聊. 一.初识Vertx 我们当时需要改造一个项目,在技术选型上有不同的意见:朋友推荐让我们尝试使用vertx来构建我们的服务: 主要出于以下几点: 1. 我们趋向于前后端分离,服务端主要提供API服务,前端采用Node.js+vue来构建:而Vertx体现了他的…
springboot 邮件服务 今天在看网上学习微服务的时候顺遍看到了一些关于springboot的文章,写的springboot拓展功能就顺遍学习了一下,接下来给大家分享一下springboot封装集成了邮件服务. 发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息.正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装. 简易应用 1.gradle配置 compile('org.springframew…
一.总体思路 这个涉及到两个方面问题:一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证)一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字签名) 二.session的状态保持及弊端当用户第一次通过浏览器使用用户名和密码访问服务器时,服务器会验证用户数据,验证成功后在服务器端写入session数据,向客户端浏览器返回sessionid,浏览器将sessionid保存在cookie中,当用户再次访问服务器时,会携带sessionid,服务器会…
本文介绍SpringBoot应用使用Nacos服务发现. 上一篇文章介绍了SpringBoot使用Nacos做配置中心,本文介绍SpringBoot使用Nacos做服务发现. 1.Eureka闭源 相信到现在,Eureka 2.0 闭源已经不是什么新鲜事了.在2017-2018年,几乎在国内掀起了一阵SpringCloud的热潮,几乎很大一部分人群随着对SpringBoot的关注,都开始关注起来了SpringCloud.而由于Eureka注册中心的易整合等优点,更是大多数使用SpringClou…
技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢. 当然,因为是REST API接口,外部客户端直接调用各个微服务是没有问题的,但出于种种原因,这并不是一个好的选择. 让客户端直接与各个微服务通讯,会有以下几个问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性. 存在跨域请求,在一定场景下处理会变得相对比较复杂. 实现认证复杂,每个微服务都需要独立认证. 难以重构,项目迭代可能导致微服务重新划分.如果客户端直接…
前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://github.com/SkyChenSky/Sikiro.SMS 此服务会使用.NET Core WebApi进行搭建,.NET Core WebApi基础原型就是RESTful风格,然而什么叫RESTful呢. REST API简介 REST Representational State Transfer的缩写…
微服务场景下,每一个微服务对外暴露了一组细粒度的服务.客户端的请求可能会涉及到一串的服务调用,如果将这些微服务都暴露给客户端,那么客户端需要多次请求不同的微服务才能完成一次业务处理,增加客户端的代码复杂度.另外,对于微服务我们可能还需要服务调用进行统一的认证和校验等等.微服务架构虽然可以将我们的开发单元拆分的更细,降低了开发难度,但是如果不能够有效的处理上面提到的问题,可能会造成微服务架构实施的失败. Zuul参考GOF设计模式中的Facade模式,将细粒度的服务组合起来提供一个粗粒度的服务,所…
技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢. 当然,因为是REST API接口,外部客户端直接调用各个微服务是没有问题的,但出于种种原因,这并不是一个好的选择. 让客户端直接与各个微服务通讯,会有以下几个问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性. 存在跨域请求,在一定场景下处理会变得相对比较复杂. 实现认证复杂,每个微服务都需要独立认证. 难以重构,项目迭代可能导致微服务重新划分.如果客户端直接…
1. 什么是API 当调包侠们训练好一个模型后,下一步要做的就是与业务开发组同学们进行代码对接,以便这些‘AI大脑’们可以顺利的被使用.然而往往要面临不同编程语言的挑战,例如很常见的是调包侠们用Python训练模型,开发同学用Java写业务代码,这时候,Api就作为一种解决方案被使用. 简单地说,API可以看作是顾客与商家之间的联系方式.如果顾客以预先定义的格式提供输入信息,则商家将获得顾客的输入信息并向其提供结果. 从本质上讲,API非常类似于web应用程序,但它没有提供一个样式良好的HTML…
本文作者是Enchant的架构师,他最近研究了Netflix.SoundCloud.谷歌.亚马逊.Spotify等公司的微服务实践,并根据自己的理解总结出了一套适用于现代Web和云技术的微服务实战经验.本文是其中的第二篇,重点介绍服务的交互以及API的设计(第一篇链接). 微服务架构提倡有许多职责单一的小服务组成,这些服务之间互相交互.然而这就造成了一系列的问题,比如:服务之间如何发现彼此?是否采用统一的协议?如果一个服务无法与其他服务通信会怎样?我会在接下来的内容里讨论部分相关话题. 通信协议…
目录 一.Zuul 介绍 二.构建Spring Cloud Zuul网关 构建网关 请求路由 请求过滤 三.路由详解 一.Zuul 介绍 ​ 通过前几篇文章的介绍,我们了解了Spring Cloud Eureka 如何搭建注册中心,Spring Cloud Ribbon 如何做负载均衡,Spring Cloud Hystrix 断路器如何保护我们的服务,以防止雪崩效应的出现,Spring Cloud Feign进行声明式服务调用都有哪些应用,相比Ribbon和Hystrix都有哪些改善.可以说,…
————————————————————————————————————————— *** 响应的数据格式  HTTP/1.1 200 OK  Server: Apache-Coyote/1.1  Accept-Ranges: bytes  ETag: W/"27-1432777730225"  Last-Modified: Thu, 28 May 2015 01:48:50 GMT  Content-Type: text/html  Content-Length: 27  Date:…
前言 springboot项目部署起来后,如何实时监控项目的运行状况呢?本文记录使用springboot-admin对服务进行监控. springboot-admin介绍:https://codecentric.github.io/spring-boot-admin/current/#_what_is_spring_boot_admin 工程结构 服务端 server服务端 客户端 client客户端 服务端.客户端都是独立的web项目,服务端是监控程序,客户端是被监控的程序,本文只测试了一个客…
仓库地址 w4ngzhen/springboot-simple-guide: This is a project that guides SpringBoot users to get started quickly through a series of examples (github.com) Chapter03-基于SpringBoot的Web服务 前言 终于,我们的教程来到了SpringBoot核心功能的介绍.对于本章,各位读者至少具备以下的知识: maven的使用 HTTP Spri…
在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍API接口有不安全的因素以及常见的保证接口安全的方式,重点实践如何对接口进行签名.@pdai SpringBoot接口 - API接口有哪些不安全的因素?如何对接口进行签名? 准备知识点 API接口有哪些不安全的因素? 常见的保证接口安全的方式? AccessKey&SecretKey 认证和授权 https 接口签名(加密) 实现案例 定义注解 AOP拦截 Request封装 实现接口…
WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法>.<实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法>,在此就不作重述. 实现WCF支持HTTP请求调用容易,但要实现类似MVC的ACTION及WEB API那样的灵活,那就得花费点功夫,为什么这样说…
我在<写在最前>里说过,后台API的文档至关重要.不过,文档只是外在表现形式,设计才是真正的灵魂.我在这篇博文主要介绍的就是我在后台开发过程中,设计API时的考虑.我只说他是考虑,因为很多东西未必是正确的,更不会是绝对了. 首先,我要声明的是,我主要是参考下面这篇文章(以下简称最佳实践)里的理念: http://www.cnblogs.com/yuzhongwusan/p/3152526.html  [标题: RESTful API 设计最佳实践] 这是一篇翻译过来的博文,原文地址是: htt…
原文:How to: Installshield做安装包时如何添加文件 我一直以为这不是一个问题,可是没想到在几个群内,对于如何向安装包添加文件不解的大有人在,今日稍暇,整理成篇,以供参考 首先我想再大声地说一遍:不要再跟我说英文看不懂了!!!!你做了程序员这一行,就得逼自己去看懂英文!!!说看不懂的赶快转行吧!甭在这行混了!去工地搬个砖也有四五千了!不比你在这里一边牢骚一边拿两千强啊!谷歌度娘都免费提供翻译功能!别再跟姐叨叨!姐不是翻译机!!! 以Installscript Project为例…
Autofac Autofac(https://autofac.org/)是一款.NET的IOC组件,它可以和Owin, Web Api, ASP.NET MVC, .NET Core完美结合,帮助开发人员轻松解决程序中的依赖注入问题. 动态注入启动Web Api 所谓的动态注入启动Web Api需求,  就是在Web服务器启动时, 可以动态选择启动的Web Api 服务. 以前使用IIS + Web Api的时候,我们需要手动在IIS中部署所有的Web Api服务,并手动启动需要使用Web A…
Python做windows服务(多进程服务),并结束多进程 Python中_,__,__xx__的区别 在注册MyWinService服务时,再使用 "sc delete 服务器名称" 命令删除服务就出现“指定的服务已经标记为删除”的异常. 因为在网上查到别人都是那么删除windows服务的. 在一次偶然情况,我关闭了服务管理窗口,问题自然解决了. 因此,出现上述原因是运行删除服务项命令的时候,服务管理窗口未关闭引起的.…
PHP做APP接口时,如何保证接口的安全性? 1.当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在session中,将生成的access_key和session_id返回给APP端. 2.APP端将接收到的access_key和session_id保存起来 3.当APP端调用接口传输数据时,将所传数据和access_key使用加密算法生成签名signature,并将signature和session_i…
当我们调用第三方的Web API服务的时候,不一定每次都是成功的.这时候,我们可能会再多尝试几次,也有可能延迟一段时间再去尝试调用服务. Task的静态方法Delay允许我们延迟执行某个Task,此方法可以让我们做到延迟一段时间再去调用服务:多尝试几次调用如何实现呢?可以用循环遍历. 在"使用HttpClient对ASP.NET Web API服务实现增删改查"中,创建了一个ASP.NET Web API项目,本篇沿用此Web API服务. 在ASP.NET Web API项目的同一个…
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 整合消息服务 2.具体内容 对于异步消息组件在实际的应用之中会有两类: · JMS:代表作就是 ActiveMQ,但是其性能不高,因为其是用 java 程序实现的: · AMQP:直接利用协议实现的消息组件,其大众代表作:RabbitMQ,高性能代表作:Kafka. 2.1.SpringBoot 整合 ActiveMQ 1. 如果要想在项目之中去使用 ActiveMQ 组件,则应该为项目添加依…
最近用express搭建了一个简单的RESTful风格的API服务,数据库使用mysql,主要用于获取数据库数据,模糊搜索等. 需要用到的模块: express:这个都很熟悉了: body-parser:express中间件,用来解析req.body: mysql:用于连接mysql数据库: 1. express启动文件,prod.server.js: const express = require('express'); const server = require('./mysqlServe…
总体思路 这个涉及到两个方面问题:一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证)一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字签名) 用户身份验证:Token与Session开放接口Api服务其实就是客户端与服务端无状态交互的一种形式,这有点类似REST(Representational State Transfer)风格.普通网站应用一般使用session进行登录用户信息的存储和验证(有状态),而开放接口服务/REST资源请求则…
# 解决docker中使用nginx做负载均衡时并发过高时的一些问题 1.问题产生原因: 由于通过nginx作为负载均衡服务,在访问并发数量达到一定量级时jmeter报错. nginx日志关键信息:accept4() failed (24: Too many open files). 此日志引起原因是nginx进程打开文件数过多.度娘一堆类似的帖子这里引用网上的解决方式比太实用 同时出现一些502 504nginx假死问题.考虑通过增加nginx工作进程数解决. 2.解决思路: 通过配置修改ul…
今天分享一下使用vue-router做路由拦截时遇到的坑. 需要提前了解的api 1:router.beforeEach( to , from ,next) ; to: Route: 即将要进入的目标 路由对象 from: Route: 当前导航正要离开的路由 next: Function: 一定要调用该方法来 resolve 这个钩子.执行效果依赖 next 方法的调用参数. next(): 进行管道中的下一个钩子.如果全部钩子执行完了,则导航的状态就是 confirmed (确认的). ne…