SpringBoot
文章平均质量分 64
呜呜呜啦啦啦
这个作者很懒,什么都没留下…
展开
-
Spring Cloud Gateway 使用 Kubernetes 作为服务发现
Spring Cloud Gateway 使用 Kubernetes 作为服务发现Spring Cloud Gateway 作为网关,通过用于执行一些通用逻辑后做请求转发,后端可能涉及到多个服务,每个服务又有多个实例,调用服务实例就需要动态的更新,可以通过注册中心来实现,如果部署在K8S集群中,可以直接使用K8S实现服务发现应用Gateway添加依赖build.gradleplugins { id 'org.springframework.boot' version '2.2.6.R原创 2021-04-10 11:48:59 · 3362 阅读 · 0 评论 -
Spring Cloud Gateway 使用 Kubernetes 实现负载均衡
Spring Cloud Gateway 使用 Kubernetes 实现负载均衡在使用 Spring Cloud Gateway 作为服务服务发现时,可能会遇到 Gateway 并没有部署在服务所在的 Kubernetes 集群中,或者存在网络隔离,无法直接通过 Service Name 访问到相应的服务,这时候就需要通过 Service 的 IP 访问,但是,spring-cloud-kubernetes-discovery没有像 spring-cloud-consul-discovery一样实现服务原创 2021-04-10 11:48:14 · 846 阅读 · 1 评论 -
Spring Cloud Kubernetes 服务注册和发现实现
Spring Cloud Kubernetes 服务注册和发现Spring Cloud Kubernetes 使用,可以通过引入 org.springframework.cloud:spring-cloud-starter-kubernetes,这个 starter 依赖于 org.springframework.cloud:spring-cloud-kubernetes-core 和 org.springframework.cloud:spring-cloud-kubernetes-discovery原创 2021-04-10 11:47:33 · 2049 阅读 · 1 评论 -
Spring Cloud Consul 服务注册和发现实现
Spring Cloud Consul 服务注册和发现实现Spring Cloud Kubernetes 使用,可以通过引入 org.springframework.cloud:spring-cloud-starter-consul-discovery,这个 starter 依赖于 org.springframework.cloud:spring-cloud-consul-core 和 org.springframework.cloud:spring-cloud-consul-discoveryCons原创 2021-04-10 11:46:41 · 1191 阅读 · 0 评论 -
Spring Cloud 使用 Kubernetes 作为配置中心实现
Spring Cloud 使用 Kubernetes 作为配置中心实现Spring Cloud 支持使用 Kubernetes 作为配置中心,通过 ConfigMap 或 Secret,将配置添加到应用中加载配置加载配置是通过 PropertySourceLocator 来实现的,ConfigMap 使用 ConfigMapPropertySourceLocator 加载,Secret 使用 SecretsPropertySourceLocator加载Bean 初始化 @Bean @Cond原创 2021-04-10 11:45:45 · 1167 阅读 · 0 评论 -
Spring Cloud 使用 Kubernetes 作为注册中心
Spring Cloud 使用 Kubernetes 作为注册中心Spring Cloud 可以使用 Kubernetes 作为注册中心,实现服务注册和发现创建两个应用,Consumer 和 Provider,Provider 提供一个 REST 接口供 Consumer 调用Provider添加依赖build.gradledependencies { compile project(":discovery/common") implementation 'org.sp原创 2021-04-10 11:44:45 · 1309 阅读 · 0 评论 -
Spring Cloud 使用 Kubernetes 作为配置中心 - 使用加密配置
Spring Cloud 使用 Kubernetes 作为配置中心 - 使用加密配置Spring Cloud 可以通过使用 Kubernetes 的 Secrets 作为加密配置创建应用添加依赖build.gradledependencies { implementation 'org.springframework.cloud:spring-cloud-starter-kubernetes-config'} 添加配置编码内容通过 Base64 编码后添加到 Kubernete原创 2021-04-10 11:44:04 · 364 阅读 · 0 评论 -
Spring Cloud 使用 Kubernetes 作为配置中心
Spring Cloud 使用 Kubernetes 作为配置中心Spring Cloud 可以通过使用 Kubernetes 的 ConfigMap 作为配置中心,实现配置的拉取和刷新创建应用添加依赖build.gradledependencies { implementation 'org.springframework.cloud:spring-cloud-starter-kubernetes-config'}添加配置ConfigMapkind: ConfigMapap原创 2021-04-10 11:42:56 · 491 阅读 · 0 评论 -
Spring Cloud 使用 Consul 作为配置中心
Spring Cloud 使用 Consul 作为配置中心加载配置加载配置是通过 ConsulPropertySourceLocator 来实现的,该类是 PropertySourceLocator接口的实现类Bean 初始化 @Bean public ConsulPropertySourceLocator consulPropertySourceLocator(ConsulConfigProperties consulConfigProperties) { return new Con原创 2021-04-10 11:42:02 · 1288 阅读 · 0 评论 -
SpringBoot 框架自带插件构建 Docker 镜像
SpringBoot 框架自带插件构建 Docker 镜像Spring Boot 2.3.0 之后支持通过 buildpacks 插件构建 Docker 镜像,原理和执行过程与 Jib 类似,支持 Spring Boot 项目的分层构建,当代码改动后,只需更新代码部分,可以减少构建后 push 和 pull 镜像的时间,减少镜像存储的成本底层是通过 Buildpacks 构建,Buildpacks是 Dockerfile 的一个替代方案。Buildpacks 能够自动探测运行 Docker 容器中的应用原创 2021-04-04 09:17:36 · 569 阅读 · 0 评论 -
Spring-Boot Liveness 和 Readness 接口使用
Spring Boot Liveness 和 Readness 接口使用在 Spring Boot 2.3+ 中,提供了单独的 liveness 和 readness,用于为 Kubernetes 提供相应检查接口liveness用于检查应用是否存活,当应用组件因故障不健康时,可以通过这个接口的结果,配置相应策略,重启应用或重新调度 Podreadness用于检查应用是否就绪,是否可以提供服务,如当流量太大超过应用的承载范围时,可以将这个接口的状态改为不健康,这样可以停止接收流量,当处理完后再原创 2021-04-04 09:16:38 · 4221 阅读 · 0 评论 -
Prometheus 使用 Consul 自动发现 Spring Boot 服务并拉取数据
Prometheus 使用 Consul 自动发现 Spring Boot 服务并拉取数据使用 Prometheus监控 SpringBoot 应用,当应用很多,且上下线频繁时,需要不断的更改 Prometheus 的配置文件,不能灵活的使用,可以通过为 Prometheus配置注册中心,从注册中心拉取应用数据获取监控数据启动 Prometheus添加配置文件 prometheus.yamlmkdir -p ~/docker/prometheus/configvi ~/docker/prome原创 2020-05-16 14:51:16 · 2774 阅读 · 1 评论 -
使用 Prometheus 和 Grafana 监控 Spring Boot 应用
使用 Prometheus 和 Grafana 监控 Spring Boot 应用监控 Spring Boot 应用的状态,以及一些自定义的业务数据监控 Spring Boot 应用添加依赖 build.gradle compile('org.springframework.boot:spring-boot-starter-actuator') compile('io.micrometer:micrometer-core:1.5.1') compile('io.microm原创 2020-05-16 14:46:44 · 2641 阅读 · 0 评论 -
Spring Security 403 自定义返回消息
Spring Security 403 自定义返回消息自定义处理类 CustomAccessDeniedHandlerimport com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.http.HttpStatus;import org.springframework.http.MediaType...原创 2018-12-24 21:13:08 · 5316 阅读 · 0 评论 -
在 Kubernetes 中部署 SpringBoot 应用
在 Kubernetes 中部署 SpringBoot 应用在 Kubernetes 中通过yaml 配置文件预先声明部署 SpringBoot 应用代码地址 https://github.com/helloworlde/k8s-service创建 SpringBoot 应用创建名为 k8s-service 的 SpringBoot 应用添加 REST APIK8sCon...原创 2018-10-22 19:29:48 · 5829 阅读 · 3 评论 -
Spring Boot 配置 HTTPS 访问
Spring Boot 配置 HTTPS 访问相关代码生成证书创建新证书keytool -genkeypair -alias hellowood -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore hellowood.p12 -validity 3650输入密钥库口令:再次输入新口令:您的名字与姓氏是什么? [Unk...原创 2018-12-31 23:09:54 · 20602 阅读 · 0 评论 -
SpringCloud OAuth2 授权服务器认证失败:BadCredentialsException: Could not obtain access token 解决方案
SpringCloud OAuth2 授权服务器认证失败:BadCredentialsException: Could not obtain access token 解决方案 在使用 SpringSecurity Oauth2 搭建授权服务器时遇到一个问题,当使用 GitHub 做授权服务器时没有问题,但是本地自己搭建的授权服务器授权后登录失败;授权后应该登录成功的,但是重新调回到授权服...原创 2018-08-21 00:01:24 · 39583 阅读 · 1 评论 -
SpringBoot 中使用 Quartz 定时任务
SpringBoot 中使用 Quartz 定时任务 项目地址 https://github.com/helloworlde/SpringBootCollection/tree/master/SpringBoot-ScheduledJob 在 SpringBoot 中通过 @Schedule注解就可以简单的实现定时任务,但是这种方式够灵活,如果想要修改执行状态就必须修改代码;另外一种...原创 2018-02-12 18:42:57 · 13353 阅读 · 4 评论 -
Spring Boot 中日志使用
Spring Boot 中日志使用配置日志输出到文件# 输出到指定文件logging.file=./logs/application.log# 输出到指定目录下(会写入到 spring.log 中)logging.path=./logs当同时存在 logging.path 和 logging.file 时 logging.path 无效日志中添加信息向日志中原创 2018-01-19 21:17:41 · 1970 阅读 · 0 评论 -
SpringBoot 使用 MySQL保存emoji 表情
SpringBoot 使用 MySQL保存emoji 表情在使用 SpringBoot 开发的应用中,有表单提交的内容中含有 emoji 表情,导致保存失败;这是因为MySQL 默认的 utf8 长度为3位,emoji 表情有4位更改表的字符集为utf8mb4ALTER TABLE content DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_...原创 2018-12-31 23:10:49 · 4493 阅读 · 2 评论 -
GraphQL Spring Boot 使用
GraphQL Spring Boot 使用项目地址 https://github.com/helloworlde/spring-boot-graphql-demo使用 SpringBoot 和 GraphQL 创建一个最简单的增删改查接口应用,使用 MongoDB 存储数据创建应用添加依赖dependencies { implementation('org.spring...原创 2019-01-29 19:55:30 · 2159 阅读 · 0 评论 -
AWS Lambda 部署 SpringBoot 应用
AWS Lambda 部署 SpringBoot 应用配置 AWS CLI 和 SeverlessAWS CLI 和 Serverless 都可以用于部署 Serverless 应用获取密钥登录 AWS, 在服务中搜索并选择 IAM,之后选择用户,添加用户输入用户名,选择编程访问选择权限-直接附加现有策略,搜索AdministratorAccess并选中(有最高权限)...原创 2019-05-06 20:10:54 · 5858 阅读 · 1 评论 -
Spring Boot 中自定义接口返回格式
Spring Boot 中自定义接口返回格式Spring Boot 项目中提供的 REST 接口往往需要封装状态或者其他附加的内容返回给客户端,如果每个接口都用一些工具类来处理很繁琐,会增加很多重复代码,还有可能漏掉导致客户端无法解析;用切面也可以实现,但是 SpringBoot 提供了处理的接口项目地址https://github.com/helloworlde/SpringBootC...原创 2019-06-19 18:43:45 · 5430 阅读 · 0 评论 -
Spring Boot 中自定义异常处理
Spring Boot 中自定义异常处理项目地址https://github.com/helloworlde/SpringBootCollection/tree/master/SpringBoot-ExceptionSpring Boot 中提供了默认的异常处理,但是对于应用来说,这些信息并不应该直接返回或者不够明确,需要结合自己的情况进行定制自定义处理异常有两种方式:org.sp...原创 2019-06-20 19:18:25 · 3686 阅读 · 0 评论 -
Spring Boot 中使用 WebSocket
Spring Boot 中使用 WebSocketWebSocket 是一种长连接技术,可以实现服务端和客户端的双向通信,服务端可以主动推送信息给客户端构建应用添加依赖build.gradledependencies { compile("org.springframework.boot:spring-boot-starter-websocket") compi...原创 2019-06-23 12:20:21 · 484 阅读 · 1 评论 -
Spring Boot 中使用Spring Cloud Stream
Spring Boot 中使用Spring Cloud StreamSpring Cloud Stream 用于构建高可扩展的使用消息系统连接的事件驱动服务的框架[外链图片转存失败(img-4nvZ6FNA-1562320728323)(hellowoodes.oss-cn-beijing.aliyuncs.com/blog/20190705120945.png)][外链图片转存失败(i...原创 2019-07-05 17:59:23 · 1979 阅读 · 0 评论 -
使用Gradle创建一个最简单的Spring Boot项目
最近在学习Spring Boot,但是由于没有科学上网,导致使用gradle开发时编译特别慢并且经常出错,遇到很多问题,看了很多博客都写的非常零碎和混乱,今天在公司看了一天的官方文档才算是刚刚入门,所以记录一下,希望能对初学者能有所帮助 开发工具及环境 JDK 1.7+ Spring Boot 要求JDK不低于,推荐使用1.8 编译工具 Gradle 安装可以原创 2016-11-30 23:12:30 · 52729 阅读 · 1 评论 -
logback 输出日志到数据库、Logstash
logback 输出日志到数据库、Logstash输入日志到数据库创建表DROP TABLE IF EXISTS logging_event;CREATE TABLE logging_event( timestmp BIGINT NOT NULL, formatted_message TEXT NOT NULL,原创 2018-01-19 21:15:07 · 4378 阅读 · 0 评论 -
Spring Boot 使用 Flyway
Spring Boot 使用 Flyway项目地址:https://github.com/helloworlde/SpringBootCollection/tree/master/SpringBoot-Flyway Flyway 是一个数据库版本管理工具,用于管理数据库操作脚本添加依赖compile('org.flywaydb:flyway-core')comp原创 2018-01-08 00:03:46 · 3483 阅读 · 0 评论 -
Redis中 ERR Client sent AUTH, but no password is set异常
使用Java连接Redis服务器的时候发生该错误,提示ERR Client sent AUTH, but no password is setCaused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set at redis.clients.j原创 2017-09-18 21:14:19 · 1558 阅读 · 0 评论 -
Spring Cloud 监控服务器下 IP/URL 不正确导致无法注册的解决方法
本项目仅用到了 Spring Cloud,并没有使用 Eureka 在使用 Spring Cloud 对 Spring Boot 应用通过 Spring Admin 进行监控的时候,当 Admin Server 和被监控的应用都在本地启动的时候没有任何问题,但是当部署到 Server 上之后,Client 在注册到 Admin Server 上时 IP 地址不正确,发现是因为 Server原创 2017-09-23 13:31:40 · 4206 阅读 · 0 评论 -
Spring Boot 启动时执行加载资源/执行操作
SpringBoot 在启动的时候加载资源或者执行操作,进行初始化来执行特定操作,SpringBoot已经提供了这样的接口,通过实现该接口就可以实现需要的操作实现CommandLineRunner接口@Order(value=2)@Componentpublic class CommandLineRunnerListenerImpl implements CommandLineRunner {原创 2017-08-29 10:42:31 · 7884 阅读 · 0 评论 -
SpringBoot启动时报org.springframework.context.annotation.ConflictingBeanDefinitionException解决方法
在SpringBoot应用启动的过程中,因为报org.springframework.context.annotation.ConflictingBeanDefinitionException导致应用启动失败 错误信息:Annotation-specified bean name 'personDubboConsumerService' for bean class [cn.com.he原创 2017-08-27 20:04:46 · 135990 阅读 · 5 评论 -
SpringBoot项目生成War包
Spring Boot 项目默认生成Jar包,如果想发布到Tomcat还需要生成War包才能运行,SpringBoot官方文档中已经阐述了具体的操作方法,可以参考:howto-create-a-deployable-war-file; 以下使用Gradle作为Build工具1. 向build.gradle文件添加依赖build.gradlebuildscript { ext {原创 2017-08-13 23:19:35 · 1129 阅读 · 0 评论 -
SpringBoot中配置使用Druid数据库连接池
Druid 是阿里巴巴开源的Java数据库连接池插件,Druid能够提供强大的监控和扩展功能配置使用Druid数据库连接池添加依赖Gradlecompile('com.alibaba:druid-spring-boot-starter:${version}')Maven <groupId>com.alibaba</groupId> <artifactId>druid</art原创 2017-08-20 23:05:13 · 7838 阅读 · 2 评论 -
IDEA启动Spring Boot项目提示Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServlet...
导入一个gradle 的Spring Boot项目,在启动的时候先提示找不到HttpServletRequest这个包,错误如下:Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest at java.net.URLClassLoader.findClass(URLClassLoa原创 2017-05-10 13:41:49 · 7633 阅读 · 0 评论 -
AngularJS发送异步Get/Post请求
AngularJS发送异步Get/Post请求1 . 在页面中加入AngularJS并为页面绑定ng-app 和 ng-controller<body ng-app="MyApp" ng-controller="MyCtrl" >...<script src="js/angular.min.js"></script><script src="js/sbt.js"></script>2 . 添加原创 2016-12-18 17:24:31 · 9560 阅读 · 0 评论 -
SpringBoot中Junit测试注入Bean失败的解决方法
在SpringBoot中使用Junit做测试的时候测试DAO层的接口,但是一直提示注入Bean失败,报以下错误:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hellowood.TestFeedbackMapper': Unsatisfied depe原创 2017-05-01 21:39:42 · 55837 阅读 · 5 评论 -
IDEA中Spring Boot项目MyBaits提示Invalid bound statement (not found)错误
一个SpringBoot项目在STS中是正常的,没有任何问题,但是导入到IDEA中之后启动就提示org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误2017-05-01 20:29:30.089 ERROR 8580 --- [nio-8080-exec-2] o.a.c.c.C.[.[.原创 2017-05-01 20:35:17 · 32905 阅读 · 10 评论 -
AngularJS上传文件
使用AngularJS上传文件前台是Angular页面后台使用SpringBoot/SpirngMVC上传文件html<div> <input id="fileUpload" type="file" /> <button ng-click="uploadFile()">上传</button&原创 2017-02-26 17:55:35 · 14111 阅读 · 8 评论