Spring
- @RestController vs @Controller
@Controller 返回⼀个⻚⾯,对应于前后端不分离的情况。
@RestController 只返回对象,属于 RESTful Web服务,对应于前后端分离的情况。
@Controller + @ResponseBody = @RestController
-
IOC
IoC(Inverse of Control:控制反转)是⼀种设计思想,就是将原本在程序中⼿动创建对象的控制权,交由Spring框架来管理
IoC 容器是 Spring ⽤来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象
初始化过程:
-
AOP
AOP(Aspect-Oriented Programming:⾯向切⾯编程)能够将那些与业务⽆关,却为业务模块所共同调⽤的逻辑或责任(例如事务处理、⽇志管理、权限控制等)封装起来,便于减少系统的重复
- Spring AOP 和 AspectJ AOP 有什么区别?
如果我们的切⾯⽐少,那么两者性能差异不⼤。但是,当切⾯太多的话,最好选择 AspectJ , 它⽐Spring AOP 快很多
-
Spring 中的 bean 的作⽤域有哪些?
singleton : 唯⼀ bean 实例,Spring 中的 bean 默认都是单例的
prototype : 每次请求都会创建⼀个新的 bean 实例
request : 每⼀次HTTP请求都会产⽣⼀个新的bean,该bean仅在当前HTTP request内有效
session : 每⼀次HTTP请求都会产⽣⼀个新的 bean,该bean仅在当前 HTTP session 内有效
-
Spring 中的单例 bean 的线程安全问题
在类中定义⼀个ThreadLocal成员变量,将需要的可变成员变量保存在 ThreadLocal 中
-
@Component 和 @Bean 的区别是什么
-
作⽤对象不同: @Component 注解作⽤于类,⽽ @Bean 注解作⽤于⽅法
-
@Bean 注解⽐ Component 注解的⾃定义性更强
-
Spring 中的 bean ⽣命周期
粗糙写下,背不下来:找到配置文件中Bean的定义,实例化Bean对象,设置对象属性,检查Aware相关接口,前置处理,后置处理,使用中,是否销毁。(漏很多细节,具体查看此博客)