CPU架构

CPU缓存多核处理器:将多个CPU(称为”核”)集成到一个集成电路芯片上。Intel Core i5-2520M (PGA) specificationsLevel 1 cache size 2 x 32 KB 8-way set associative instruction caches 2 x 32 KB 8-way set associative data cachesLevel 2 cache size 2 x 256 KB 8-way set associative cachesLevel 3 cache size 3 MB 12-way set associative shared cacheL1 Cache在现代微处理器中,如Intel Core i5-2530M型号的双核CPU,缓存配置为:2 x (32KB + 32KB + 256KB) + 3ML1 cache被分割为两个大小相同的缓存,一个用于缓存数据(32KB),一个用于缓存微处理器指令(32KB)。L2 CacheLevel2 cache,又被称为secondary cache,用于存储最近访...

Spring 事件

http://localhost:9000/oauth2/authorize?response_type=code&client_id=oidc-client&scope=message.read%20openid&redirect_uri=http://www.baidu.com

https://docs.spring.io/spring-authorization-server/docs/current/reference/html/

Spring扩展接口

HandlerMethodArgumentResolver通过扩展HandlerMethodArgumentResolver的方式,实现参数的自定义解析。public class CustomResolver implements HandlerMethodArgumentResolver { @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.hasParameterAnnotation(RequestBody.class) && ParamName.class.isAssignableFrom(parameter.getParameterType()); }}@Configurationpublic class WebConfig implements WebMvcConfigurer { @Autowired private CustomResolver customResolver; ...

Spring 事件

ApplicationListener// META-INF/spring.factoriesorg.springframework.context.ApplicationListener=<class implements ApplicationListener>SpringApplicationRunListener// META-INF/spring.factoriesorg.springframework.boot.SpringApplicationRunListener=<class implements SpringApplicationRunListener>

Spring Bean生命周期

Spring Bean 生命周期应用场景缓存预热为什么要关注Spring Bean的创建和销毁流程,最常见的一个应用场景是服务的缓存预热,通常是放在Bean的初始化阶段。线上就因为对初始化的流程理解存不够深入,预热的代码存在BUG,导致数据预热完成之前,已经开始监听端口接收流量导致的线上故障。Bean初始化/销毁方式 init-method/destroy-method InitializingBean/DisposableBean @PostConstruct/@PreDestroy ContextStartedEvent/ContextClosedEventBean初始化/销毁的顺序%%{init: {"flowchart": {"htmlLabels": false}} }%%flowchart TDsubgraph A["Bean Initialization"]direction LRmarkdown1 --> markdown2 --> markdown3 --> markdown4 --> markdown5markdown1["`@...

安全

XSS(跨站脚本攻击)利用网页开发时留下的漏洞,将恶意指令代码注入到网页,使用户加载并执行攻击者恶意制造的网页程序。反射式XSS反射式XSS(非存储式XSS),诱骗用户点击URL带攻击代码的链接,服务器解析后响应,在返回的响应内容中隐藏和嵌入攻击者的XSS代码。用户访问安全网站时,Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。攻击过程 Alice经常浏览某个网站,此网站为Bob所拥有。Bob的站点运行Alice使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。 Charly发现Bob的站点包含反射性的XSS漏洞。 Charly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。 Alice在登录到Bob的站点后,浏览Charly提供的URL。 嵌入到URL中的恶意脚本在Alice的浏览器中执行,就像它直接来自Bob的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在Alice完全不知情的情况下将这些信息发送到Charl...