如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议. 准备 为了使用HTTPS连接器,需要生成一份Certificate keystore,用于加密和机密浏览器的SSL沟通. 如果你使用Unix或者Mac OS,可以通过下列命令:keytool -genkey -alias tomcat -keyalg RSA,在生成过程中可能需要你填入一些自己的信息,例如我的机器上反馈如下: 可以看出,执行…
本文首发于个人网站:Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试:Spring Boot可以跟BDD(Behavier Driven Development)工具.Cucumber和Spock协同工作,对应用程序进行测试. 进行软件开发的时候,我们会写很多代码,不过,再过六个月(甚至一年以上)你知道自己的代码怎么运作么?通过测试(单元测试.集成测试.接口测试)可…
本文首发于个人网站:在Spring Boot项目中使用Spock测试框架 Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring Boot项目中使用该框架写优雅.高效以及DSL化的测试用例.Spock通过@RunWith注解与JUnit框架协同使用,另外,Spock也可以和Mockito(Spring Boot应用的测试--Mockito)一起使用. 在这个小节中我们会利用Spock.Mockito一起编写一些测试用例(包括对Contro…
本文首发于个人网站:Spring Boot项目中如何定制拦截器 Servlet 过滤器属于Servlet API,和Spring关系不大.除了使用过滤器包装web请求,Spring MVC还提供HandlerInterceptor(拦截器)工具.根据文档,HandlerInterceptor的功能跟过滤器类似,但拦截器提供更精细的控制能力:在request被响应之前.request被响应之后.视图渲染之前以及request全部结束之后.我们不能通过拦截器修改request内容,但是可以通过抛出异…
本文首发于个人网站:Spring Boot项目中如何定制PropertyEditors 在Spring Boot: 定制HTTP消息转换器一文中我们学习了如何配置消息转换器用于HTTP请求和响应数据,实际上,在一次请求的完成过程中还发生了其他的转换,我们这次关注将参数转换成多种类型的对象,如:字符串转换成Date对象或字符串转换成Integer对象. 在编写控制器中的action方法时,Spring允许我们使用具体的数据类型定义函数签名,这是通过PropertyEditor实现的.Propert…
本文首发于个人网站:Spring Boot项目中如何定制servlet-filters 在实际的web应用程序中,经常需要在请求(request)外面增加包装用于:记录调用日志.排除有XSS威胁的字符.执行权限验证等等.除了上述提到的之外,Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们在自己的项目中还可以增加别的过滤器. Spring Boot.Spring Web和Spring MVC等其他框…
spring boot因为内嵌tomcat容器,所以可以通过打包为jar包的方法将项目发布,但是如何将spring boot项目打包成可发布到tomcat中的war包项目呢? 1. 既然需要打包成war包项目,首先需要在pom.xml文件中修改打包类型,将spring boot默认的<packaging>jar</packaging>修改为<packaging>war</packaging>形式: 2. 其次spring boot的web项目中内嵌tomca…
项目用到的环境: Windows 10 JDK8 IntelliJ IDEA 2017.1.3 Apache Tomcat 8 Maven 3.3.3 使用IDEA新建spring boot项目 新建项目 选择类型为Spring Initializer. 填入相关的项目信息 选择denpendcy 接着下一步, 选择web. 选择路径 再下一步, 选择项目的路径, 点击完成 新建成的项目的文件目录结构如下图: 第一个Spring boot项目 pom.xml如下所示: <dependencies…
最近的项目用spring boot 框架 借此学习了一下 这里做一下总结记录 非常便利的一个框架 它的优缺点我就不在这背书了 想了解的可以自行度娘谷歌 说一下要写什么吧 其实还真不是很清楚,只是想记录一下自己学习的过程 愿景是写成一个小的spring boot系列然后能做一些迭代升级 也可以对比不同技术的优劣 所以也会写其一些周边 比如 用到的技术(datatables,maven,thymeleaf,mybatis,jpa) 和有(tong)趣(ku)的过程 废话就说的到这吧. 可以的话 每个…
有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了. 1.在pom包中添加spring-boot-starter-test包引用 <dependency> <groupId>org.springframework.boot</groupI…
构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring Boot 项目的功能. 选择构建工具 Maven Project,Spring Boot 版本选择 1.5.4,填写 Group 和 Artifact 信息,在Search for dependencies 中可以搜索需要的其他依赖包,这里我们需要实现 RESTful API,所以可以添加 Web…
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反观,我总会发现一些不足的地方,要么测试分类没有分好,要么基本的编码架子没有考虑周全. 另外,我在工作中也会接触到很多既有项目,公司内部和外部的都有,多数项目的编码实践我都是不满意的.比如,我曾经新加入一个项目的时候,前前后后请教了3位同事才把该项目在本地运行起来:又比如在另一项目中,我发现前端请求对应的Jav…
项目中,因为使用了第三方支付(支付宝和微信支付),支付完毕后,第三方支付平台一般会采用异步回调通知的方式,通知商户支付结果,然后商户根据通知内容,变更商户项目支付订单的状态.一般来说,为了防止商户项目自身因为一些特殊原因,比如正好当时网络状态不稳定,商户回调接口无法访问,或者商户回调接口出现异常.第三方支付平台,一般会发送多次请求来尽量确保通知到商户系统. 但是,总会有各种各样的情况,导致,第三方平台所有的通知次数通知完毕后,商户系统依然没有正确处理掉改笔订单状态.(一般第三方支付平台,会:1分…
想要创建一个spring boot项目,最好的方法就是参照官网的例子: https://spring.io/guides/gs/maven/#scratch 创建的过程我就不再啰嗦了,官网描述非常详细,按照官网的操作方式,我遇到了以下坑: 1.在cmd中运行mvn compile  ,提示"未能找到编译器,是否安装过程把JRE当成了JDK..."(具体的错误不记得了,此处只是一个大概的错误信息) 采用了以下方式解决: a.在cmd中输入 java ,能正常显示jre版本信息. b.重装…
构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring Boot 项目的功能. 选择构建工具 Maven Project,Spring Boot 版本选择 1.5.4,填写 Group 和 Artifact 信息,在Search for dependencies 中可以搜索需要的其他依赖包,这里我们需要实现 RESTful API,所以可以添加 Web…
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目 jenkins搭建 部署分为三个步骤: 第一步,jenkins安装 第二步,插件安装和配置 第三步,Push SSH 第四步,部署项目 第一步 ,jenkins安装 准备环境: JDK:1.8Jenkins:2.83 Centos:7.3maven 3.5‘ jdk默认已经安装完成 配置maven 版本要求maven3.5.0 软件下载 wget http://mirror.bit.edu.…
Spring Boot 项目创建 File->New->New Project->Spring Initializr 勾选 Web Spring Boot 版本选择稳定版,本文选择 2.1.1 最后一步,填写工程名字点击 finish 本地访问地址:http://localhost:8080/ 新建一个 Project, 系统都会帮我们创建一个名为 artifactId+Application 的入口类,这个类中有一个 main 方法,这个 main 方法就是一个标准的 Java 应用程…
Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者(官网介绍). Spring Boot特点:        1. 创建独立的Spring应用程序        2. 嵌入的Tomc…
一.准备环境 配置Maven,打开设置页面File - Setting,快捷键Ctrl + Alt + S,找到Maven,默认是IDEA 自带的插件,User setting file 配置文件默认是C 盘下文件,Local repository 本地仓库默认也是C 盘下路径.这里配置自己下载的Maven,建议不要放在C 盘(一般系统盘是C 盘),尤其是repository 仓库会随着开发工作,仓库文件越来越多,放在C 盘下,会影响电脑开机时长等问题. 开发工具: IDEA(Intellij…
简介 为了学习和尽快掌握 Java 9 的模块化(Module System)新特性,最近安装了 JDK 9,新建了一个 Spring Boot 进行尝试, 过程中遇到了一下报错问题,写下此文谨作为个人笔记,同时也供遇到相同问题的同学参考. 1. Gradle "Could not determine java version from '9.0.1'." 问题 之前本地安装的是 Gradle 4.1 版本,在创建基于Gradle的Spring Boot项目时,在Gradle执行Bui…
转载:https://www.jianshu.com/p/f1e354d382cd Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring Boot项目中使用该框架写优雅.高效以及DSL化的测试用例.Spock通过@RunWith注解与JUnit框架协同使用,另外,Spock也可以和Mockito(Spring Boot应用的测试——Mockito)协同使用. 在这个小节中我们会利用Spock.Mockito一起编写一些测试用例(包括对C…
一.我们可以使用Spring Initializr来创建SpringBoot项目. Spring Initializr从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构.虽然不能生成应用程序代码,但它能为你提供一个基本的项目结构,以及一个用于构建代码的Maven或Gradle构建说明文件.你只需要写应用程序的代码就好了.   Spring Initializr有几种用法. 通过Web界面使用. 通过Spring Tool Suite使用. 通过IntelliJ IDE…
实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第一步,安装操作系统 首先在腾讯云上安装一个干净的Ubuntu系统 系统使用Ubuntu 16.04 64位 这里服务市场虽然有docker,但是版本都太低(1.8.2左右),现在的一些镜像都不支持这些低版本的了,所以自己手动装个  腾讯云推荐使用ssh连接,配置好后就不用输入登入密码了 秘钥可以在腾…
0 引言 本文主要记录借用Idea 开发环境下,搭建 Spring Boot 项目框架的过程. 1 系列文档目录 Spring Boot 项目学习 (一) 项目搭建 Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置 Spring Boot 项目学习 (三) Spring Boot + Redis 搭建 Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档 2 第一个Spring boot web…
目录结构 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目:选择我们需要的模块:向导会联网创建Spring Boot项目:默认生成的Spring Boot项目: 主程序已经生成好了,我们只需要我们自己的逻辑 resources文件夹中目录结构 static:保存所有的静态资源: js css images: templates:保存所有的模板页面:(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面):可以使用模板引擎(freemar…
上一篇文章分享了如何在 KubeSphere 对公共的代码仓库 GitHub 和镜像仓库 DockerHub 创建流水线,本文将继续使用 KubeSphere,基于 Harbor 和 GitLab 创建流水线,将 Spring Boot 项目发布至 Kubernetes. KubeSphere 集成了 Harbor 和 GitLab,内置的 Harbor 和 GitLab 作为可选安装项,需在安装前进行配置开启安装.用户可以根据团队项目的需求来安装,方便对项目的镜像和代码进行管理,非常适合内网环…
在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集群中去.这个才是我们最终的目标.众所周知,k8s 是目前最火的容器编排项目,很多公司都使用它来构建和管理自己容器集群,可以用来做机器学习训练以及 DevOps 等一系列的事情. 在这里,我们聚焦 CI/CD,针对于 Spring Boot 项目,借助 Gitlab CI 完成流水线的任务配置,最终部…
一.springboot项目中有两种配置文件 springboot项目中有两种配置文件 bootstrap 和 application bootstrap是应用程序的父上下文,由父Spring ApplicationContext加载.所以加载顺序优先于application. bootstrap 里面的属性不能被覆盖. 应用场景 bootstrap 使用 Spring Cloud Config 配置中心时,这时需要在bootstrap 配置文件中添加连接到配置中心的配置属性,来加载外部配置中心…
Maven构建项目模板 maven构建的是maven风格的纯净模板,要转变成spring boot项目需要自己添加依赖等配置. mvn archetype:generate: Maven插件原型是一个Maven项目模板工具包.  -DgroupId    包名 -DartifactId 项目名 -DarchetypeArtifactId  类型maven-archetype-quickstart,创建一个Java Project,maven-archetype-webapp,创建一个Web Pr…
1.IDEA:使用 Spring Initializer快速创建项目 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目: 选择我们需要的模块:向导会联网创建Spring Boot项目: 默认生成的Spring Boot项目: 主程序已经生成好了,我们只需要我们自己的逻辑 resources文件夹中目录结构 static:保存所有的静态资源: js css images: templates:保存所有的模板页面:(Spring Boot默认jar包使用嵌入式的Tom…