
Spring
北漂编程小王子
程序猿的工作日记
展开
-
java 多个 @Scheduled定时器不执行
多个 @Scheduled定时器不执行原创 2022-11-02 14:11:56 · 4907 阅读 · 1 评论 -
java StopWatch计算耗时毫秒数
java计算耗时毫秒数原创 2022-06-17 10:15:36 · 1997 阅读 · 0 评论 -
SpringBoot 配置篇 - 加载指定YML文件配置信息
项目需要指定特定的yml文件名称,不是默认的application.yml,那么需要如何配置呢?在之前学习的@PropertySource 读取指定配置文件的文章中我们了解到使用PropertySource可以指定配置文件类去加载指定的properties文件,关于properties的配置可以参考一下这篇文章,本文将讲述yml的踩坑过程。首先我创建了classpath:security-whitelist.yml@PropertySource(value = {"classpath:securit原创 2022-02-24 11:11:58 · 4492 阅读 · 0 评论 -
springmvc freemarker页面枚举的遍历输出
public enum BooleanEnum { TRUE(Boolean.TRUE, "是"), FALSE(Boolean.FALSE, "否"); private final Boolean value; private final String info; private BooleanEnum(Boolean value, String info) { this.value = value; this.i原创 2021-10-13 13:03:53 · 290 阅读 · 0 评论 -
Spring Cloud Feign 请求 动态URL 动态的Token
项目进行遇到一个问题,就是我们每增加一个服务调用的时候,基本都是增加一个Feign接口,这样可能会面临尴尬的问题,不同的URL调用时,会copy一堆的Feign接口,这显然不是我们最佳的方案,如果能使用一个Feign接口,在不同逻辑下动态请求不同的URL,同时不同的URL携带不同的Token信息…@FeignClient(name = "TetsFeignClient")public interface TestFeignClient { @RequestLine("GET /test/heal原创 2021-10-12 13:03:52 · 1403 阅读 · 0 评论 -
Spring Cloud Feign 使用示例
现在本地项目需要调用其他项目组的服务接口,两者服务之间通过TOKEN验证,实现接口互通。在调用的Controller中或者Service中直接注入TestApiClient 即可。@FeignClient(value = "TetsApiClient", url = "${api.test.homeUrl}/api/v1",configuration = FeignConfig.class)public interface TestApiClient { @PostMapping("/list原创 2021-10-12 11:52:41 · 395 阅读 · 0 评论 -
Spring 事务提交之后再执行操作
Spring代码实现:package xxxx.components;import lombok.extern.slf4j.Slf4j;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import org.springframework.transaction.support.TransactionSynchronizationAdapt原创 2021-05-14 15:15:51 · 1805 阅读 · 0 评论 -
com.netflix.client.ClientException: Load balancer does not have available server for client
一、问题描述报错信息如下{ "success": false, "message": "com.netflix.client.ClientException: Load balancer does not have available server for client: rm-provider", "code": "InternalServerError", "data": null, "timestamp": 1620886655662}二、错误原因在SpringBoot原创 2021-05-13 14:39:04 · 1509 阅读 · 0 评论 -
@Scheduled中fixedDelay、initialDelay 和cron表达式的解析及区别
注解参数区别@Scheduled注解可以控制方法定时执行,其中有三个参数可选择:1、fixedDelay控制方法执行的间隔时间,是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次。2、fixedRate是按照一定的速率执行,是从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次也是不会执行,但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些全部执行掉,而后再按照固定速率继续执行。3、cron表达式可以定制化执行任务,原创 2021-03-05 10:19:27 · 4539 阅读 · 1 评论 -
spring注解之@PostConstruct在项目启动时执行指定方法
注解解释Spring的@PostConstruct注解在方法上,表示此方法是在Spring实例化该Bean之后马上执行此方法,之后才会去实例化其他Bean,并且一个Bean中@PostConstruct注解的方法可以有多个。举例说明:package xxxxx;import xxximport java.util.*;@Component@Scope(“prototype”)public class PrototypeBean {@PostConstructprivate void i原创 2021-02-15 20:25:08 · 655 阅读 · 0 评论 -
spring lookup注解的用法
spring在容器中注入bean的时候,scope默认的是单例模式,也就是说在整个应用中只能创建一个实例。当scope为PROTOTYPE类型的时候,在每次注入的时候会自动创建一个新的bean实例。但是当一个单例模式的bean去引用PROTOTYPE类型的bean的时候,PROTOTYPE类型的bean也会变成单例。@Lookup注解可以用来解决这个问题当我们需要在一个单例bean中引入另外一个bean,但是希望这个bean是非单例的时候可以使用lookup注解来实现首先给出错误的写法:@Compo转载 2021-02-13 20:31:53 · 1108 阅读 · 0 评论 -
Spring的controller默认是单例还是多例
Spring bean作用域先看看spring的bean作用域有几种,他们之间分别有啥不同。Spring bean作用域有以下5个:singleton:单例模式,默认,当spring创建applicationContext容器的时候,Spring会欲初始化所有的该作用域实例,加上lazy-init就可以避免预处理;prototype:原型模式,每次通过getBean获取该bean就会新产生一个实例,创建后Spring将不再对其管理;******* 下面是在web项目下才用到的 *******re原创 2021-02-01 20:25:34 · 1029 阅读 · 0 评论 -
理解AOP@Before,@After,@AfterReturning,@AfterThrowing执行顺序
根据需要在切入点不同位置的切入内容:使用@Before在切入点开始处切入内容使用@After在切入点结尾处切入内容使用@AfterReturning在切入点return内容之后切入内容(可以用来对处理返回值做一些加工处理)使用@Around在切入点前后切入内容,并自己控制何时执行切入点自身的内容使用@AfterThrowing用来处理当切入内容部分抛出异常之后的处理逻辑列举一个对于程序员更加直观的代码示例:try{ try{ doBefore();//对应@原创 2021-01-27 10:49:27 · 2766 阅读 · 9 评论 -
Spring Aop中解析spel表达式
在Spring Aop中,我们可以拿到拦截方法的参数,如果能结合spel表达式,就能实现更加灵活的功能。典型的实现有Spring的缓存注解:@Cacheable(value = "user", key = "#id", condition = "#id lt 10")public User conditionFindById(final Long id) {}本文介绍如何在aop编程中解析spel表达式,提供几个通用的方法。Spring使用自定义注解实现aop的方式这里就不赘述,只着重介绍如何解转载 2021-01-25 16:55:34 · 2762 阅读 · 1 评论 -
Java Restful风格的API 定义接口的入参和返回值编码UTF-8
项目对外提供接口,但是发现返回值中文乱码!原因是外部系统规定调用的接口入参和返回值必须是UTF-8编码的JSON格式,所以接口定义必须如下处理:@RequestMapping(value = "/doAAA", method = RequestMethod.POST,headers = "Content-type=application/json;charset=UTF-8",produces = "text/html;charset=utf-8") @ResponseBody publ原创 2020-06-17 18:16:10 · 3722 阅读 · 0 评论 -
Spring Cache使用
概述Spring 3.1 引入了激动人心的基于凝视(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(比如EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中加入少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。Spring 的缓存技术还具备相当的灵活性。不仅能够使用 SpEL(Spring Expres...原创 2019-07-17 11:59:09 · 130 阅读 · 0 评论 -
@Controller和@RestController的区别?
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。如果需要返回到指定页面,...转载 2019-07-16 12:15:07 · 106 阅读 · 0 评论 -
spring中aop的注解实现方式
注解方式实现aop我们主要分为如下几个步骤1.在切面类(为切点服务的类)前用@Aspect注释修饰,声明为一个切面类。2.用@Pointcut注释声明一个切点,目的是为了告诉切面,谁是它的服务对象。(此注释修饰的方法的方法体为空,不需要写功能比如 public void say(){};就可以了,方法名可以被候命的具体服务功能所以引用,它可以被理解为切点对象的一个代理对象方法)3.在对应的方...转载 2019-06-18 15:37:24 · 5486 阅读 · 0 评论