springboot核心原理

67 阅读1分钟

springboot内嵌容器-请求连接数

默认tomcat,有netty、嵌入式TomcatJetty、 Undertow容器(无需部署war文件)

1 Spring Bean

1.1 Bean 生命周期

  • 实例化(Instantiation):使用 BeanDefinition 中的信息实例化 Bean。

  • 属性赋值(Dependency injection):将 BeanDefinition 中配置的属性值注入到 Bean 中。

  • 初始化前阶段(Post-Construct):如果 Bean 实现了 InitializingBean 接口,会调用 afterPropertiesSet() 方法。

  • 初始化阶段(Initialization):如果在 BeanDefinition 中配置了 init-method,会调用该方法。

  • 销毁阶段(Destruction):如果 Bean 实现了 DisposableBean 接口,会调用 destroy() 方法。如果配置了 destroy-method,会调用该方法。

1.2 Spring中Bean的作用域有哪些?如何控制?

singleton:整个应用程序运行周期只有一个bean实例。spring容器默认bean作用域。在加载 spring 配置文件时候创建对象【通过bean的class引用反射机制可以创建这个实例】 prototype:在调用getBean方法时候创建多实例对象

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 
User user = context.getBean("user2", User.class); 
User user1 = context.getBean("user2", User.class); 
System.out.println(user==user1);//false

request:每个 HTTP 请求都会创建一个 Bean 实例

使用场景参考: juejin.cn/post/724476…

1 什么是spring IOC? DI是如何实现的?

blog.csdn.net/qq_22654611…

2. 解释一下什么叫AOP(面向切面编程)?

  1. Spring MVC的工作原理是怎样的?

核心: 控制反转和面向切面