当 MySQL 以 skip-name-resolve 模式启动时如何使用 grant 命令
本文介绍了 MySQL
中 skip-name-resolve
参数对连接的优化作用,随之而来的权限表仅可使用 IP
的限制,以及如何在无法提前确定 IP
的情况下使用 grant
命令搭配通配符 %
进行授权。
本文介绍了 MySQL
中 skip-name-resolve
参数对连接的优化作用,随之而来的权限表仅可使用 IP
的限制,以及如何在无法提前确定 IP
的情况下使用 grant
命令搭配通配符 %
进行授权。
@ComponentScan
注解是 Spring
中很常用的注解,用于扫描并加载指定类路径下的 Bean
,而 Spring Boot
为了便捷使用 @SpringBootApplication
组合注解集成了 @ComponentScan
的能力。也许你听说过使用后者会覆盖前者中关于包扫描的设置,但你是否质疑过这个“不合常理”的结论?是否好奇过为什么它们不像其他注解在嵌套使用时可以同时生效?又是否好奇过 @SpringBootApplication
可以间接设置 @ComponentScan
属性的原因?本文从源码角度分析 @ComponentScan
的工作原理,揭示它独特的检索算法和注解层次结构中的属性覆盖机制。
@ConfigurationProperties
和 @EnableConfigurationProperties
是 Spring Boot
中常用的注解,提供了方便和强大的外部化配置支持。尽管它们常常一起出现,但是它们真的必须一起使用吗?Spring Boot
的灵活性常常让我们忽略配置背后产生的作用究竟是什么?本文将从源码角度出发分析两个注解的作用时机和工作原理。
在 Spring
中,AutowiredAnnotationBeanPostProcessor
是一个非常重要的后处理器,它可以自动装配标注注解的字段和方法,默认使用 @Autowired
和 @Value
注解,可以支持 JSR-330
的 @Inject
注解。本文通过分析源码介绍它的调用时机和工作原理。
@PropertySource
注解提供了一种方便的声明性机制,用于将 PropertySource
添加到 Spring
容器的 Environment
环境中。该注解通常搭配 @Configuration
注解一起使用。本文将介绍如何使用 @PropertySource
注解,并通过分析源码解释外部配置文件是如何被解析进入 Spring
的 Environment
中。
在分析 Spring Boot
自动配置的工作原理时,我们并没有深入“如何获得配置在 spring.factories
中的自动配置类”。本文将从图解和源码两个角度分析 Spring Boot SPI
机制,了解 spring.factories
中的配置是如何被加载和解析成为缓存中的“接口-实现”键值对。
如果你正在参与一个共享库的开发,你可能会想为使用方提供自动配置的支持,以帮助对方快速地接入和使用。自动配置机制往往和 starter
联系在一起,本文将介绍如何创建一个自定义的 starter
并从源码角度分析 Spring Boot
自动配置的工作原理。
Import
注解是 Spring
基于 Java
注解配置的重要组成部分,处理 Import
注解是处理 Configuration
注解的子过程之一,本文将介绍 Import
注解的 3
种使用方式,然后通过分析源码和处理过程示意图解释它是如何导入(注册) BeanDefinition
的。
Nginx
没有提供开箱即用的日志滚动功能,而是将其交给使用者自己实现。你既可以按照官方文档的建议通过编写脚本实现,也可以使用 logrotate
管理日志。但是和在普通场景下不同,在使用 Docker
运行 Nginx
时,你可能需要额外考虑一点细节。本文记录了在为 Docker
中的 Nginx
的日志文件配置滚动功能过程中遇到的一些问题和思考。
原先在使用 Cloudflare Tunnel
访问家庭网络中的服务时,是直接将域名解析到相应服务。尽管 Cloudflare
已经提供相关的请求统计和安全防护功能,部分服务自身也有访问日志,但是为了更好地监控和跟踪对外服务的使用情况,采集 Cloudlfare
统计中缺少的新,决定使用 Nginx
反向代理内部服务,统一内部服务的访问入口。简而言之就是,又折腾一些有的没的。以上修改带来的一个附加好处是在局域网内访问服务时,通过在 hosts
文件中添加域名映射,可以用更加容易记忆的域名代替 IP + port
的形式去访问。