Spring Boot 核心配置文件,核心注解 - 知乎

启动类在包根目录下添加启动类,必须包含main方法,再添加Spring Boot启动方法:```textSpringApplication.run(SampleController.class, args);```或者流式API```textnew SpringApplicationBuilder().run(args);```下面是一个典型的Spring Boot工...
阅读全文

Spring Boot 整合 Mybatis 实现双数据源 - 知乎

这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源实现数据库的读写分离。添加依赖加入Mybatis启动器,这里添加了Druid连接池、Oracle数据库驱动为例。```text<dependency <groupIdorg.mybatis.spring.boot</groupId <art...
阅读全文

Spring Boot 配置的加载顺序 - 知乎

如果加载的配置有重复的,它们的加载顺序是这样的,数字越小的优先级越高,即优先级高的覆盖优先级低的配置。1. Devtools global settings properties on your home directory (/.springbootdevtools.properties when devtools is active).2. @TestPropertySource a...
阅读全文

Spring Boot 日志框架集成 - 知乎

Spring Boot日志框架Spring Boot支持Java Util Logging,Log4j2,Lockback作为日志框架,如果你使用starters启动器,Spring Boot将使用Logback作为默认日志框架。无论使用哪种日志框架,Spring Boot都支持配置将日志输出到控制台或者文件中。springbootstarter启动器包含springbootstarte...
阅读全文

Spring Boot 怎么实现热部署 - 知乎

在Spring Boot实现代码热部署是一件很简单的事情,代码的修改可以自动部署并重新热启动项目。引用devtools依赖```text<dependency <groupIdorg.springframework.boot</groupId <artifactIdspringbootdevtools</artifactId <optionaltrue</opt...
阅读全文

关于缓存,redis缓存你需要知道的细节 - 知乎

一、缓存在系统中用来做什么1\. 少量数据存储,高速读写访问。通过数据全部inmomery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景。2\. 海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。Redis3.0以后开始支持集群,实现了半自动化的数据分片,不过需要smartcl...
阅读全文

Spring开启方法异步执行 - 知乎

@EnableAsync```text@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AsyncConfigurationSelector.class)public @interface EnableAsync { Class<? extends Annotati...
阅读全文

SpringCloud Eureka 自我保护机制 - 知乎

自我保护背景首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N1个节点挂掉也不会影响其他节点的正常运行。默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正...
阅读全文

Spring MVC 表单防重复提交实战 - 知乎

利用Spring MVC的过滤器及token传递验证来实现表单防重复提交。创建注解```text@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Token { boolean create() default false; bo...
阅读全文

Spring Enable 高级应用及原理 - 知乎

Enable之前的文章用到了一些Enable开头的注解,比如EnableAsync、EnableScheduling、EnableAspectJAutoProxy、EnableCaching等,Enable表示开启/允许一项功能。Enable工作原理我们只需要几个很简单的注解就能开启一个复杂的功能,这是多么简易的用法,这是怎么办到的?首先来看看计划任务@EnableSchedu...
阅读全文