线偶

线偶的IT笔记

Spring Bean 初始化

spring bean 初始化过程涉及到很多 spring 的扩展接口,源码必懂。 getBean 源码位置: org.springframework.beans.factory.BeanFactory#getBean 1 2 3 4 5 // BeanFactory 是接口,由 AbstractBeanFactory 类来实现 @Override public Object getBean(String name) throws BeansException { return doGetBean(name, null, null, false); } 源码位置: org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean 1 2

Spring Websocket 原理

使用示例 例子来自于官网 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/myHandler"); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } 说明: WebSocketConfigurer 配置 websocket。 WebSocketHandler 处

Spring 常用扩展点

在 spring 中,最常用的两种扩展就是 BeanFactoryPostProcessor 和 BeanPostProcessor, 当然还有其他的扩展,比如 ApplicationListener, SpringApplicationRunListener 等等。 BeanFactoryPostProcessor 源码位置: org.springframework.beans.factory.config.BeanFactoryPostProcessor 1 2 3 4 5 6 @FunctionalInterface public interface BeanFactoryPostProcessor { // 可以用 beanFactory 来修改 beanDefinition, 注册 singletonBean void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException; }

适配多种 Servlet 容器

自动配置类 源码位置: org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // 导入 tomcat,jetty,undertow 的配置 @Import({ ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class, ServletWebServerFactoryConfiguration.EmbeddedTomcat.class, ServletWebServerFactoryConfiguration.EmbeddedJetty.class, ServletWebServerFactoryConfiguration.EmbeddedUndertow.class }) public class ServletWebServerFactoryAutoConfiguration { @Bean public ServletWebServerFactoryCustomizer servletWebServerFactoryCustomizer(ServerProperties
0%