SSM相关问题与解答
2019-02-11 本文已影响11人
Real_man
常见框架相关问题,包含一些分布式问题
- Spring AOP的实现原理和场景?
- AspectJAwareAdvisorAutoProxyCreator Spring启动时的beanPostProcessor,bean生命周期中经常可以看到beanPostProcessor在起作用,AOP也是基于IOC来实现的。
- DefaultAopProxyFactory.createAopProxy(AdvisedSupport config) 创建AOP代理类,这样才可以实现AOP
- AopNamespaceHandler aop标签解析的handler
- ConfigBeanDefinitionParser ,aop config标签的解析类。
如果是接口类,则使用JDK动态代理,如果是普通类,通过继承实现
- Spring bean的作用域和生命周期;
scope: prototype,singleton,request,session
- 实例化
- 设置bean的Aware
- BeanPostProcessor.postProcessBeforeInitialization(Object bean, String beanName)
- InitializingBean.afterPorpertiesSet
- BeanPostProcessor.postProcessAfterInitialization(Object bean, String beanName)
- SmartInitializingSingleton.afterSingletonsInstantiated
- SmartLifecycle.start
- bean已经在spring容器的管理下,可以做我们想做的事
- SmartLifecycle.stop(Runnable callback)
- DisposableBean.destroy()
- Spring Boot比Spring做了哪些改进? Spring 5比Spring4做了哪些改进;
- 监控功能,actutor
- starter,提供了很多自动配置
- 内嵌tomcat
- 很多Template类
- 开发快,打包部署一体化,并且内置监控功能
Spring 5.x改进:
- JDK版本升级
- Core框架修订,核心容器更新
- Kotlin函数式编程
- 响应式编程模型
- 测试改进
- 额外库支持
- 停止维护一些特性
- 如何自定义一个Spring Boot Starter?
- @ConfigurationProperties starter的配置属性
- @EnableConfigurationProperties 启用配置属性
- spring.factories 可以指定自动配置类
- spring-configuration-metadata.json 配置属性的补全功能
- Spring IOC是什么?优点是什么?
Ioc是把对象的控制权较给框架或容器,容器中存储了众多我们需要的对象,然后我们就无需再手动的在代码中创建对象。需要什么对象就直接告诉容器我们需要什么对象,容器会把对象根据一定的方式注入到我们的代码中。注入的过程被称为DI。有时候需要动态的指定我们需要什么对象,这个时候要让容器在众多对象中去寻找,容器寻找需要对象的过程,称为DL(Dependency Lookup, 依赖查找)。
IOC容器给我们提供的最大便利之处就是更容易实现可插拔,可替换的组件。这也是接口驱动开发所带来的优势,根据接口可以提供更多灵活的子类实现,增强代码的健壮性和稳定性。
参考:Ioc容器概述
- SpringMVC、动态代理、反射、AOP原理、事务隔离级别;
知识点很多,参考我创建的专题
探索Spring
最后
持续更新