面经详情

PHP面试很好,共1轮面试
Q:● 如何实现一个IOC容器 ● spring是什么?1条回答
  • ● 是一个控制反转IOC和面向切面AOP的容器框架 ● 简化开发,提高效率
Q: ● 谈谈你对AOP的理解 
  • ● 将程序中的一些交叉业务逻辑(安全,日志,事务)。封装成一个切面。然后注入到目标对象(具体业务逻辑)中 ● AOP可以对功能进行增强,例如可以在执行某个方法之前(之后)做一些事情 
Q:● 谈谈你对IOC的理解 1条回答
Q:● BeanFactory和ApplicationContext有什么区别? 
  • ● ApplicationContext是BeanFactory的子接口 ● BeanFactroy只有在使用到某个Bean时,才会对Bean进行加载实例化(延迟加载) ● 弊端 ● 如果Bean的某一个属性没有注入,要到第一次使用调用getBean方法才能抛出异常 ● ApplicationContext在启动时,一次性创建出所有的Bean ● 好处 ● 有利于检查所依赖属性是否注入 ● 弊端 ● 占用内存空间,当应用程序配置Bean多时,启动就慢 ● ApplicationContext支持更多功能 ● 可同时加载多个配置文件 ● 支持国际化 ● 统一的资源文件的访问方式 ● 提供在监听器中注册bean的事件 ● 两者都支持BeanPostProcessor,BeanFactoryPostProcessor的使用 ● BeanFactory需要手动注册 ● ApplicationContext是自动注册
Q:● 描述一下Spring Bean的生命周期? 1条回答
  • ● 1. 通过构造器创建bean实例 
  • ● 2. 为bean的属性设置值和对其他bean的引用
  •  ● 3. 把bean实例传递给bean后置处理器的方法
  •  ● 4. 调用bean的初始化方法 
  • ● 5. 把bean实例传递给bean后置处理器的方法 
  • ● 6. 使用bean 
  • ● 7. 容器关闭时,调用bean的销毁方法 
Q:● AOP执行原理简单说下 
  • ● AOP使用的是动态代理,它不会去修改字节码,会在内存中临时为方法生成一个AOP对象,此对象包含了目标对象的全部方法,并且在切点做了增强处理 ● JDK动态代理提供反射来接收被代理的类,要求代理的类必须实现一个接口 ● 而jdk动态代理的核心是InvocationHandler接口和Proxy类 ● 如果目标类没有实现接口,AOP则会选择CGLIB来实现 ● 它是通过继承的方式做动态代理的,如果某个类被标记为final,就没办法了

相关推荐

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网文思创新软件技术有限公司-杭州文思创新软件技术有限公司-杭州面试经验文思创新软件技术有限公司-杭州面试经验:PHP面试很好,共1轮面试
正在招聘央企中文打字客服,工作轻松简单,六险一金43 个岗位