16-Spring面经必威体育精装版面试题.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring面经 说说Spring常用的几个注解? @Component 取代.xml中的bean id=;用于三层架构类之外。 @Controller 衍生注解;用于Controller层 @Service 衍生注解;用于Service层 @Repository 衍生注解;用于Dao层 @Bean 取代.xml中工厂创建bean对象,方法的返回值成为bean对象。 @Autowired 取代.xml中property中的ref注入,底层是CGLIB动态代理。这个是本地注入。 @Aspect 定义在类上;设置当前类为切面类 @Before 定义在方法上;标注当前方法作为前置通知 谈谈你对Spring的理解? Spring是一个完整的生态,不单单是一个技术框架,它最重要的是拐持扩展性!扩展性!扩展性! Spring两大核心思想是什么? IOC:解耦,使代码复用,可维护性大幅提升 AOP:提供切面编程,同样增强生产力。 Spring 框架中都用到了哪些设计模式? 工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例; 单例模式:Bean默认为单例模式。 代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术; 模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。 观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如Spring中listener的实现–ApplicationListener。 说一说你对IOC的理解? IoC(Inversion Of Control)控制反转,其实是一种思想,用于解决程序间的耦合问题。【解耦】 原本我们创建对象是直接在类中,通过new的方式创建,控制权在于程序员自己,现在我们把new对象的工作交给spring完成,我们只需要通过配置文件进行配置即可。反转的是对象的创建权力。【便捷】 ioc容器,可以简单理解为一个工厂,但是他的功能比普通工厂要强大很多,内部帮助我们完成了对象的创建和效果的整个过程管理,同时提供了很多扩展机会。【可扩展】 IOC的原理是什么? 工厂模式+反射机制。 Bean对象的创建方式有哪几种? 三种: 1、通过IoC直接创建bean对象 2、通过IoC创建bean工厂,再通过bean工厂的方法创建bean对象 3、通过IoC创建bean工厂,再通过bean工厂的静态方法创建bean对象 Spring有哪些依赖注入法? 有4中注入方式: 1.Set方法注入:注入最简单,最常用的注入方式,支持注解+xml。 2.构造器注入:是指带有参数的构造函数注入,支持注解+xml 3.静态工厂的方式注入:通过调用静态工厂的方法来获取自己需要的对象,只支持xml。 4.实例工厂的方式注入:获取对象实例的方法不是静态的,所以需要new一个工厂类,再调用普通的实例方法,只支持xml。 有两种实现方式: 1.注解(@Autowired,@Resource,@Required) 2.配置文件(xml) 使用@Autowired注解自动装配的过程是怎样的? 使用@Autowired注解来自动装配指定的bean。在使用@Autowired注解之前需要在Spring配置文件进行配置,context:annotation-config /。 在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。在使用@Autowired时,首先在容器中查询对应类型的bean: 如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据; 如果查询的结果不止一个,那么@Autowired会根据名称来查找; 如果上述查找的结果为空,那么会抛出异常。解决方法时,使用required=false。 Spring框架中的单例bean是线程安全的吗? 不是,Spring框架中的单例bean不是线程安全的。 spring 中的 bean 默认是单例模式,spring 框架并没有对单例 bean 进行多线程的封装处理。 实际上大部分时候 spring bean 无状态的(比如 dao 类),所以某种程度上来说 bean 也是安全的,但如果 bean 有状态的话(比如 view model 对象),那就要开发者自己去保证线程安全了,最简单的就是改变 bean 的作用域,把“singleton”(单例)变更为“prototype”(多例

文档评论(0)

188****0747 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档