随笔分类 - SpringBoot And SpringCloud
摘要:一个最简单的使用FeignClient的例子如下: 1,添加maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId
阅读全文
摘要:我们一直在使用Eureka进行注册服务,然而你有可能很少关心服务在注册到Eureka Server时是采用的主机名的方式?还是IP地址的方式? 构建项目 我们把之前章节SpringCloud组件:将微服务提供者注册到Eureka服务中心的源码复制一份修改项目名称为hengboy-spring-clo
阅读全文
摘要:ApplicationEventPublisher 是spring context提供的一个事件发布功能; 事件发布 和 MQ 的作用差不多; 使用的spring context版本是5.2.5 1. 定义一个对象,用于监听 @Data @AllArgsConstructor public clas
阅读全文
摘要:本地调试SpringBoot工程时,因为服务会注册到dev环境上的Eureka上,导致其他人调用服务失败,因此在本地调试时可以不用将服务注册上去。而实现这个只需要在application.yml中增加一个配置:eureka: client: register-with-eureka: false
阅读全文
摘要:在mybatis的配置文件中添加 <settings> <!--标准日志工厂实现--> <srtting name="logImpl" value="STDOUT_LOGGING"/> </settings> 名字不能写错。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING
阅读全文
摘要:在开发中可能会有这样的情景。需要在容器启动的时候执行一些内容。比如读取配置文件,数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。这两个接口分别为CommandLineRunner和ApplicationRunner。他们的执行时机为容器启动完成的时候。 这两个接口中
阅读全文
摘要:@Controllerdvice 可以用于全局异常处理@Aspect 可以用于添加traceID,方法日志记录HandlerInterceptorAdapter 拦截器,可以用于方法级权限验证,添加日志
阅读全文
摘要:自定义一个注解 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface UserAuthorization { } 复制代码 其中@Target注解解决
阅读全文
摘要:有些时候我们不想让一些权限不足的人看到一些敏感字段,因此我们可以使用注解+AOP+反射来实现将返回的对象中的敏感字段设置为null值。 1. 编写一个注解,在属性上使用,用来控制字段的权限 @Target(ElementType.FIELD) @Retention(RetentionPolicy.R
阅读全文
摘要:import com.baomidou.mybatisplus.extension.service.IService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.B
阅读全文
摘要:Controller 默认是单例的,一般情况下,如果用Spring MVC 的 Controller时,尽量不在 Controller中使用实例变量。否则会出现线程不安全性的情况,导致数据逻辑混乱。正因为单例所以不是线程安全的。举个简单例子: @Controller public class Sco
阅读全文
摘要:Spring框架为什么采用三级缓存而不采用二级缓存来解决循环依赖?CGLIB动态代理的AOP存在! 发现每次执行一遍singleFactory.getObject()方法又是一个新的代理对象,这就会有问题了,因为AService是单例的,每次执行singleFactory.getObject()方法
阅读全文
摘要:面试官:今天要不来聊聊Spring对Bean的生命周期管理? 候选者:嗯,没问题的。 候选者:很早之前我就看过源码,但Spring源码的实现类都太长了 候选者:我也记不得很清楚某些实现类的名字,要不我大概来说下流程? 面试官:没事,你开始吧 候选者:首先要知道的是 候选者:普通Java对象和Spri
阅读全文
摘要:Spring学习(五):动态代理的两种实现方式(全网最容易懂)前言 要学习SpringAOP之前,肯定要弄清楚什么是动态代理,动态代理是怎样实现的,以及动态代理能解决什么问题。一、什么是动态代理1、字面意思,代理就是代替别人去做一些事情,如线下店代替工厂去卖电脑、代理工厂做售后工作,线下店就是代理商
阅读全文
摘要:BeanFactory和ApplicationContext的区别 描述 BeanFactory: 是Spring里面最低层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能; ApplicationContext: 应用上下文,继承BeanFactory接口,它是Spring的一各
阅读全文
摘要:@PostConstruct注解详解 往往我们在项目启动时需要加载某个方法的时候,可以使用@Component+@PostConstruct方法将一个方法完成初始化操作,@PostConstruct注解的方法会将在依赖注入完成之后被自动调用。该注解在整个Bean初始化中执行的顺序: @Constru
阅读全文
摘要:本文打算介绍几个不太容易说出其区别,或者用途的 Spring 注解,比如 @Component 与 @Bean 的比较,@ControllerAdvice 是如何处理自定义异常的等等。 Spring 中的一些注解 1. @Component 和 @Bean 的区别是什么? 作用对象不同:@Compo
阅读全文
摘要:用法 public interface UserService { public UserModel get2( Integer uuid) ; } @Validated //① 告诉MethodValidationPostProcessor此Bean需要开启方法级别验证支持 @Component
阅读全文
摘要:在前面写的一篇文章中,热心网友【地藏Kelvin】评论说在多线程中还是有可能会乱掉,建议通过MDC打印traceId来个全链路调用跟踪。掘金里个个都是人才,说话又好听,超喜欢在里面。掘金使我进步,热心网友总能提出改进意见 写在前面 通过本文将了解到什么是MDC、MDC应用中存在的问题、如何解决存在的
阅读全文
摘要:package com.demo.other; import com.dtflys.forest.annotation.ForestScan; import com.dtflys.forest.scanner.ClassPathClientScanner; import org.springfram
阅读全文