202011-13 详解SpringBoot配置文件启动时动态配置参数方法 序言当我们要同时启用多个项目而又要使用不同端口或者变换配置属性时,我们可以在配置文件中设置${变量名}的变量来获取启动时传入的参数,从而实现了动态配置参数,使启用项目更加灵活例子server:port:${PORT:50101}#服务端口spring:application:name:xc?govern?center#指定服务名eureka:client:registerWithEureka:true#服务注册,是否将自己注册到Eureka服务中fetchRegistry:true#服务发现,是否从Eureka中获取... 继续阅读 >
202011-13 聊一聊带智能提示的spring-boot-starter 前言前几个月和隔壁组的老王闲聊,他说项目的供应商离职率居高不下,最近还有开发刚接手ESB订阅发布接口才两周就提出离职,而他能做的就只有苦笑和默默地接过这个烂摊子了。而然幸福的家庭总是相似的,而不幸的我却因业务变革走上了和老王一样的道路。单单是接口的开发居然能迫使一位开发毅然决然地离职,我既不相信是人性的扭曲,更不信是道德的沦丧。抛开这个富有色彩的故事而言,我发现原来的项目存在如下问题:有使用任何现... 继续阅读 >
202011-11 详解SpringBoot项目docker环境运行时无限重启问题 可能是我开始处理问题的思路不对,现在描述问题可能也有点乱,但是里面可能的处理方式希望能帮到遇到我这个坑的人描述:springboot项目,docker镜像里面运行,看docker的日志,项目启动成功后,隔了一分钟左右他就自动重新启动,然后造成网站接口访问的时候nginx报502gateway啥的,有两台服务器,一个是文件服务器,运行了很简单的上传下载文件的代码以及验证token,另一台运行了java应用,两台服务器都在一次更新项目的镜像,运... 继续阅读 >
202011-11 使用SpringBoot实现微服务超时重试模式的示例 使用resilience4j的库和SpringBoot设计高弹性的微服务。微服务本质上是分布式的。当您使用分布式系统时,请始终记住这一第一法则- 网络中可能发生任何事情。处理任何此类意外故障可能很难解决。故障可能是任何东西-应用程序,硬件或网络等。系统从故障中恢复并保持正常运行的能力使系统更具 弹性。它还避免了下游服务的任何级联故障。重试模式:在微服务体系结构中,当有多个服务(A,B,C和D)时,一个服务(A)可能依... 继续阅读 >
202011-11 SpringBoot 使用 @Value 注解读取配置文件给静态变量赋值 1、application.properties配置文件mail.username=xue@163.commail.password=xuemail.host=smtp.163.commail.smtp.auth=true2、给普通变量赋值,直接在变量上添加@Value注解importorg.springframework.beans.factory.annotation.Value;publicclassMailConfig{@Value("${mail.username}")privateStringusername;@Value("${mail.password}")privateStringpassword;@Value("${mail.host}")privateStringhost... 继续阅读 >
202011-10 详解SpringBoot中添加@ResponseBody注解会发生什么 SpringBoot版本2.2.4.RELEASE。【1】SpringBoot接收到请求①springboot接收到一个请求返回json格式的列表,方法参数为JSONObject格式,使用了注解@RequestBody为什么这里要说明返回格式、方法参数、参数注解?因为方法参数与参数注解会影响你使用不同的参数解析器与后置处理器!通常使用WebDataBinder进行参数数据绑定结果也不同。将要调用的目标方法如下:@ApiOperation(value="分页查询")@RequestMapping(value="/listPa... 继续阅读 >
202011-10 springboot 微信授权网页登录操作流程 操作流程假设你已经有自己的域名,因为微信公众号和微信回调都需要域名先看看官方给的文档根据官方文档,主要流程如下:(1)引导用户进入授权页面同意授权,获取code(2)通过code换取网页授权access_token(与基础支持中的access_token不同)(3)刷新access_token(如果有需要)(3)通过网页授权access_token和openid获取用户基本信息提示:以下是本篇文章正文内容,下面案例可供参考编写微信授权方法和获取用户信息方法 ... 继续阅读 >
202011-10 SpringBoot服务器端解决跨域问题 本文导航SpringBoot解决跨域问题的两种方案:1、通过给方法或者类加注解的形式,@CrossOrigin。2、继承接口,重写addCorsMappings方法。第一种方式:@RestController@CrossOrigin("http://localhost:8081")publicclassBaseController{@GetMapping("/hello")publicStringtestGet(){return"get";}@PutMapping("/doPut")publicStringtestPut(){return"put";}}指定请求来源,可以写成“*”,表示接收所有来源的请求... 继续阅读 >
202011-10 SpringBoot属性注入的两种方法 1、实现方式一:Spring中的@PropertySource@Component@PropertySource("classpath:user.properties")publicclassUserInfo{@Value("${user.username}")privateStringusername;@Value("${user.password}")privateStringpassword;@Value("${user.age}")privateIntegerage;@OverridepublicStringtoString(){return"UserInfo{"+"username='"+username+'\''+",password='"+password+'\''+",age... 继续阅读 >
202011-10 详解SpringBoot启动类的扫描注解的用法及冲突原则 背景SpringBoot启动类上,配置扫描包路径有三种方式,最近看到一个应用上三种注解都用上了,代码如下:@SpringBootApplication(scanBasePackages={"a","b"})@ComponentScan(basePackages={"a","b","c"})@MapperScan({"XXX"})publicclassXXApplicationextendsSpringBootServletInitializer}那么,疑问来了:SpringBoot中,这三种注解生效优先级如何、第一种和第二种有没有区别呢?本文来整理下这三个注解的注意事项。Spri... 继续阅读 >
202011-10 你不知道的SpringBoot与Vue部署解决方案 前言前段时间公司外网部署的演示环境全部转到内网环境中去,所有对外演示的环境都需要申请外网映射才能访问某个服务。我用一个外网地址www.a.com映射到一个内网地址http://ip:port,然后在这个地址http://ip:port用nginx做代理转发到各个组的项目http://ipn:portn上去,其中也遇到一些静态资源404,主要是是解决这个404问题。最近又做了一个项目,考虑到用户的体验,减少部署的复杂性,我想了一个办法用SpringBoot... 继续阅读 >
202011-08 SpringBoot+Idea热部署实现流程解析 idea版本IntelliJIDEA2019.2.3(UltimateEdition)1.pom文件加依赖<!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></dependency>2.Ctrl+Alt+S设置修改Compiler项3.Ctrl+Shift+Alt+/选择Registry4.勾选后close5.重启或者重新打开项目JRebel插件更方便.以上就是本文的全部... 继续阅读 >
202011-08 基于springboot实现文件上传 本文实例为大家分享了基于springboot的文件上传的具体代码,供大家参考,具体内容如下第一步:在vo包下创建上传前端响应类importcom.alibaba.druid.filter.AutoLoad;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;/***上传响应参数*@param<E>*///以下是lombok插件注解@Data@AllArgsConstructor@NoArgsConstructorpublicclassResp<E>{//返回状态码如200403privateStringc... 继续阅读 >
202011-08 Springboot中如何使用Jackson 1、SpringMVC中默认集成SpringMVC已经默认集成了JackSon,如下所示:@RequestMapping("/addUserInfo")publicUserInfoaddUserInfo(@RequestBodyUserInfouserInfo){}可以用UserInfo对象来接前台传过来的json,SpringMVC已经帮我们自动反序列化。 可以看到,在SpringBoot中,只需要导入webstarter,不需要添加其他的依赖,就可以使用Jackson。2、时间格式化在序列化的过程中,如果有Date格式,我们可以通过下面几种方... 继续阅读 >
202011-08 SpringBoot配置拦截器的示例 在SpringBoot中配置拦截器,主要有下面两个步骤:1、继承接口 HandlerInterceptor,根据需要重写其中的三个类。2、在配置类中注入该类。publicclassMyInterceptorimplementsHandlerInterceptor{//controller执行之前@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{System.out.println("preHandler......");returntrue... 继续阅读 >
202011-08 SpringBoot上传图片的示例 说明:通常项目中,如果图片比较多的话,都会把图片放在专门的服务器上,而不会直接把图片放在业务代码所在的服务器上。下面的例子只是为了学习基本流程,所以放在了本地。1、单张图片上传1.1、前端用表单提交前端代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><formmethod="post"action="/uploads"enctype="multipart/form-data"><inputtype="file"name="files"m... 继续阅读 >