招银网络笔试java_【招银网络科技java面试题目|面试经验】-看准网

面试官的问题:

问看到简历中的项目,简单介绍一下用到的框架

答这个项目主要是学校实训的项目,给的选题去做的,使用到了SSH的三个框架。其中Spring主要使用了IoC功能,利用Spring的Bean容器去管理action、实体类、持久类的实例(应该再加上sessionFactory,需要将id为sessionFactory的Bean注入到DAO类中);Struts主要用来做MVC层的实现;Hibernate用来做对象持久化

问讲讲对于Spring IoC的理解

答Spring的实现利用了Java的反射机制(还有工厂设计模式、xml配置文件以及、dom4j解析xml文件)。Spring的IoC避免我们在需要一个对象时手动的去创建它,而是将对象的生成由Spring来管理,这是控制反转;而在我们需要的时候,只需要根据设计好的Bean的id就可以让Spring将对应的实例注入到我们需要的地方,这是依赖注入。(IoC是一种设计思想,它的出现致力于设计出更加松耦合的程序,传统的应用程序中类内部主动创建依赖对象,这导致了类与类之间的高耦合,不利于测试,有了IoC之后,我们把创建和查找依赖对象的控制权交给了容器,由容器负责将对象注入,所以对象和对象之间是松耦合的、便于测试的(建议再去了解Spring解决循环依赖的问题,利用hashmap作三级缓存解决))

问讲讲依赖注入如何实现的

答依赖注入使用java 的反射机制实现,java.lang.reflect包(具体实现在Spring中比较复杂,如果不涉及Bean的创建流程的话,面试官期望得到的回答应该是Spring利用Cglib作为默认的实例化策略(动态字节码增强技术),还有一个BeanUtils(Java反射机制))

问讲讲依赖注入的优缺点

答优点:

用Spring替代自己管理实例的注入,尤其在单例的需求上,不用我们自己书写单例模式,只需要在xml或者注解中将scope设置为singleton即可

(1.资源(Bean)的集中管理,实现资源的可配置和易管理)

(2.降低了组件之间的耦合度)

缺点:

1.如果注入对象特别多的时候,比如用构造器注入的时候就会显得冗余,亦会使代码维护上造成困难

2.如果用setter注入的话,就不能将其设为final

3.因为使用反射实现,在实例化以及注入的时候会经历更多的步骤,使得执行效率降低

(1.创建对象的步骤变得复杂)

(2.使用反射来创建对象,在执行效率上会有些损耗,但正因此才提高了程序的灵活性和可维护性)

(3.对于xml方式,IDE的重构支持比较差,比如你修改了类名之后就需要对xml中手动进行修改)

(4.如果用setter注入的话,就不能将其设为final)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值