![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 85
旭出东方旭出东方旭出东方旭出东方旭出东方
这个作者很懒,什么都没留下…
展开
-
Feign负载均衡
概述Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡Feign能干什么Feign旨在使编写Java Http客户端变得更原创 2021-07-05 15:25:23 · 344 阅读 · 0 评论 -
Ribbon负载均衡
概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义原创 2021-07-05 11:01:22 · 90 阅读 · 0 评论 -
SpringBoot中的SmartInitializingSingleton接口及其使用
转载:SpringBoot中的SmartInitializingSingleton接口及其使用一、使用场景实现SmartInitializingSingleton的接口后,当所有单例 bean 都初始化完成以后, Spring的IOC容器会回调该接口的 afterSingletonsInstantiated()方法。主要应用场合就是在所有单例 bean 创建完成之后,可以在该回调中做一些事情,例如:import org.springframework.beans.factory.ListableBe转载 2021-07-02 10:46:38 · 334 阅读 · 0 评论 -
使用@AutoConfigureBefore、After、Order调整Spring Boot自动配置顺序
转自:使用@AutoConfigureBefore调整配置顺序竟没生效?前言Spring Boot是Spring家族具有划时代意义的一款产品,它发展自Spring Framework却又高于它,这种高于主要表现在其最重要的三大特性,而相较于这三大特性中更为重要的便是Spring Boot的自动配置(AutoConfiguration)。与其说是自动,倒不如说是“智能”,该框架看起来好像“更聪明”了。因此它也顺理成章的成为了构建微服务的基础设施,稳坐第一宝座。生活之道,在于取舍。编程何尝不是,任何决定都转载 2021-04-21 18:35:54 · 259 阅读 · 0 评论 -
spring-boot-configuration-processor 是干啥用的
转自:卡梅丽多 >> spring-boot-configuration-processor 是干啥用的spring默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor了引入pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>转载 2021-04-21 09:21:43 · 610 阅读 · 0 评论 -
组件化之AutoService使用与源码解析
转自:组件化之AutoService使用与源码解析在JDK 1.5之后,java提供了对注解的支持,这些注解与普通代码一样,在运行期间发挥作用。在JDK 1.6中实现了JSR-269规范,提供了一组插入式注解处理器的标准API在编译期间对注解进行处理,可以看作是一组编译器的插件,可以读取/修改/添加抽象语法树中的任意元素。在Android模块开发之APT技术介绍了自定义注解处理器的一些知识,自定义注解处理器注册才能被Java虚拟机调用,在上面的博客第四小节中用的方法是手动注册,这比较违反程序员懒的特点,转载 2021-04-20 10:32:59 · 721 阅读 · 0 评论 -
注解处理器(编译期|RetentionPolicy.SOURCE)
注解的处理除了可以在运行时通过反射机制处理外,还可以在编译期进行处理。在编译期处理注解时,会处理到不再产生新的源文件为止,之后再对所有源文件进行编译。Java5中提供了apt工具来进行编译期的注解处理。apt是命令行工具,与之配套的是一套描述“程序在编译时刻的静态结构”的API:Mirror API(com.sun.mirror.*)。通过Mirror API可以获取到被注解的Java类型元素的信息,从而提供自定义的处理逻辑。具体的处理工具交给apt来处理。编写注解处理器的核心是两个类:注解处理器(com转载 2021-04-19 10:38:45 · 538 阅读 · 0 评论 -
分布式解决方案之任务调度
Java实现定时任务方式Threadpublic class Demo01 { static long count = 0; public static void main(String[] args) { Runnable runnable = new Runnable() { @Override public void run() { while (true) { try {原创 2021-02-03 14:54:21 · 447 阅读 · 0 评论 -
注解@EnableAspectJAutoProxy(exposeProxy = true) exposeProxy 的用法
假设一个接口里面有两个方法:package demo.long;public interface CustomerService { public void doSomething1(); public void doSomething2(); } 接口实现类如下:package demo.long.impl;import demo.long.CustomerService; @Servicepublic class CustomerServiceImpl转载 2020-12-31 16:43:51 · 12309 阅读 · 1 评论 -
什么是CAS(乐观锁)
本文讲解CAS机制,主要是因为最近准备面试题,发现这个问题在面试中出现的频率非常的高,因此把自己学习过程中的一些理解记录下来,希望能对大家也有帮助。什么是悲观锁、乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优越感,其实理解清楚了,这些词也就唬不住人了。synchronized是悲观锁,这种线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁。CAS操作的就是乐观锁,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就转载 2020-12-29 10:07:15 · 6323 阅读 · 2 评论 -
Swagger2 API接口管理
随着微服务架构体系的发展和应用, 为了前后端能够更好的集成与对接,同时为了项目的方便交付,每个项目都需要提供相应的API文档。来源:PC端、微信端、H5端、移动端(安卓和IOS端)对API文档进行更新的时候,需要通知前端开发人员,导致文档更新交流不及时;API接口返回信息不明确大公司中肯定会有专门文档服务器对接口文档进行更新。缺乏在线接口测试,通常需要使用相应的API测试工具,比如postman、SoapUI等接口文档太多,不便于管理为了解决传统API接口文档维护的问题,为了方便进行测试后台R原创 2020-12-23 11:38:47 · 229 阅读 · 0 评论 -
spring扩展
BeanDefinitionRegistryPostProcessor这个类需要与@Import和@Configuration共同配合使用。一般来说@Import可以导入三种bean普通的bean classImportSelector 这个类可以通过自定义一些条件来控制classpath中需要导入的classImportBeanDefinitionRegistrar这个类可以通过代码来动态加载bean,这些bean可以是普通的定义好的class也可以是动态代理。通过查看代码我们可以知道.原创 2020-12-23 11:08:42 · 211 阅读 · 0 评论 -
Spring AOP
什么是AOP编程AOP: Aspect Oriented Programming 面向切面编程。 面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。 主要的功能是:日志记录,性能原创 2020-12-22 11:28:15 · 106 阅读 · 0 评论 -
spring自动装配
@Autowired&@Qualifier&@Primary自动装配;Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值;1)、@Autowired:自动注入默认优先按照类型去容器中找对应的组件:applicationContext.getBean(BookDao.class);找到就赋值如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找 applicationContext.getBean(“bookDao”)@Qualifier(转载 2020-12-22 09:52:45 · 90 阅读 · 0 评论 -
spring属性赋值
@Value赋值public class Person { //使用@Value赋值; //1、基本数值 //2、可以写SpEL; #{} //3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值) @Value("张三") private String name; @Value("#{20-2}") private Integer age; }@Configurationpublic class MainConfi转载 2020-12-22 09:31:25 · 62 阅读 · 0 评论 -
spring bean 生命周期
@Bean指定初始化和销毁方法@Componentpublic class Car { public Car(){ System.out.println("car constructor..."); } public void init(){ System.out.println("car ... init..."); } public void detory(){ System.out.println("car ... detory..."转载 2020-12-21 14:15:57 · 85 阅读 · 0 评论