Spring18问,看你能对几题!
2023-03-31 10:29:05 时间
- 1.spring 中都用到了哪些设计模式?
- 2.spring 中有哪些核心模块?
- 3.说一下你理解的 IOC 是什么?
- 4.spring 中的 IOC 容器有哪些?有什么区别?
- 5.那 BeanFactory 和 FactoryBean 又有什么区别?
- 6.@Repository、@Service、@Compent、@Controller它们有什么区别?
- 7.那么 DI 又是什么?
- 8.说说 AOP 是什么?
- 9.动态代理和静态代理有什么区别?
- 10.JDK 动态代理和 CGLIB 代理有什么区别?
- 11.Spring AOP 和 AspectJ AOP 有什么区别?
- 12.spring 中 Bean 的生命周期是怎样的?
- 13.spring 是怎么解决循环依赖的?
- 14.为什么要使用三级缓存,二级缓存不能解决吗?
- 15.@Autowired 和 @Resource 有什么区别?
- 16.spring 事务隔离级别有哪些?
- 17.spring 事务的传播机制有哪些?
- 18.springBoot 自动装配原理?
1.spring 中都用到了哪些设计模式?
1.工厂设计模式: 比如通过 BeanFactory 和 ApplicationContext 来生产 Bean 对象
BeanFactory 是 IOC 容器,是用来承载对象的
FactoryBean 是一个接口,为 Bean 提供了更加灵活的方式,通过代理一个Bean对象,对方法前后做一些操作。
6.@Repository、@Service、@Compent、@Controller它们有什么区别?
这四个注解的本质都是一样的,都是将被该注解标识的对象放入 spring 容器当中,只是为了在使用上区分不同的应用分层
- @Repository:dao层
- @Service:service层
- @Controller:controller层
- @Compent:其他不属于以上三层的统一使用该注解
- 由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了
- 静态代理通常只代理一个类
- 静态代理事先知道要代理的是什么
动态代理
- 在程序运行时,运用反射机制动态创建而成
- 动态代理是代理一个接口下的多个实现类
- 动态代理不知道要代理什么东西,只有在运行时才知道
10.JDK 动态代理和 CGLIB 代理有什么区别?
JDK 动态代理时业务类必须要实现某个接口,它是基于反射的机制实现的,生成一个实现同样接口的一个代理类,然后通过重写方法的方式,实现对代码的增强。
CGLIB 动态代理是使用字节码处理框架 ASM,其原理是通过字节码技术为一个类创建子类,然后重写父类的方法,实现对代码的增强。
18.springBoot 自动装配原理?
- 1.容器在启动的时候会调用 EnableAutoConfigurationImportSelector.class 的 selectImports方法获取一个全面的常用 BeanConfiguration 列表
- 2.之后会读取 spring-boot-autoconfigure.jar 下面的spring.factories,获取到所有的 Spring 相关的 Bean 的全限定名 ClassName
- 3.之后继续调用 filter 来一一筛选,过滤掉一些我们不需要不符合条件的 Bean 4.最后把符合条件的 BeanConfiguration 注入默认的 EnableConfigurationPropertie 类里面的属性值,并且注入到 IOC 环境当中
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十