SSM常见面试题
SSM常見面試題
- 1.spring bean 容器的生命周期是什么樣的?
- 2.BeanFactory 和 ApplicationContext 的區別?
- 3.spring 的特性?談談你對 spring 的理解?spring 用來干嘛?
- 4.jdk 的動態代理和 cglib 動態代理有什么區別?
- 5.aop 的實現原理?
- 6.springmvc 的原理?springmvc 的工作流程?
- 7.springmvc 的常用注解有哪些?
- 8.mybatis 使用了哪些設計模式?你了解過哪些設計模式?
1.spring bean 容器的生命周期是什么樣的?
???? 注:以上工作完成以后就可以應用這個Bean了,那這個Bean是一個Singleton的,所以一般情況下我們調用同一個id的Bean會是在內容地址相同的實例。
2.BeanFactory 和 ApplicationContext 的區別?
3.spring 的特性?談談你對 spring 的理解?spring 用來干嘛?
??????Spring框架是 Java 應用最廣的框架,它的成功來源于理念,而不是技術本身,它的理念包括 IOC (Inversion of Control,控制反轉) 和 AOP(Aspect Oriented Programming,面向切面編程)。
優點:
Spring 能幫我們做什么?
??????①.Spring 能幫我們根據配置文件創建及組裝對象之間的依賴關系。
??????②.Spring 面向切面編程能幫助我們無耦合的實現日志記錄,性能統計,安全控制。
??????③.Spring 能非常簡單的幫我們管理數據庫事務。
??????④.Spring 還提供了與第三方數據訪問框架(如Hibernate、JPA)無縫集成,而且自己也提供了一套JDBC訪問模板來方便數據庫訪問。
??????⑤.Spring 還提供與第三方Web(如Struts1/2、JSF)框架無縫集成,而且自己也提供了一套Spring MVC框架,來方便web層搭建。
??????⑥.Spring 能方便的與Java EE(如Java Mail、任務調度)整合,與更多技術整合(比如緩存框架)。
??
4.jdk 的動態代理和 cglib 動態代理有什么區別?
5.aop 的實現原理?
6.springmvc 的原理?springmvc 的工作流程?
SpringMVC的原理圖:
SpringMVC工作流程?
??
7.springmvc 的常用注解有哪些?
控制反轉
@Component,標注為一個普通的bean@Service@Repository依賴注入
@Autowired@Qulifier@Resource@Value全局配置
@Configuration,代替配置文件,相當于beans@ComponentScan,配置掃描包@Scope,配置bean的生命周期8.mybatis 使用了哪些設計模式?你了解過哪些設計模式?
1、建造者模式(Builder Pattern)
??????使用多個簡單的對象一步一步構建成一個復雜的對象。它提供了一種創建對象的最佳方式。例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder等
XMLConfigBuilder :XML配置構建器,建造者模式,繼承BaseBuilder
2、 簡單工廠模式(Simple Factory Pattern)
??????又稱為靜態工廠方法(Static Factory Method)模式,它屬于類創建型模式,專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。如:
???SqlSessionFactory:創建SqlSession對象。
???ObjectFactory:對象工廠:所有對象都要由工廠來產生 。
???MapperProxyFactory:創建映射器代理 MapperProxy對象。
3、 單例模式(Singleton Pattern)
??????三個要點:
如:ErrorContext和LogFactory
??????ErrorContext:用在每個線程范圍內的單例,用于記錄該線程的執行環境錯誤信息,
??????LogFactory:是提供給整個Mybatis使用的日志工廠,用于獲得針對項目配置好的日志對象。
4、代理模式(Proxy Pattern)
??????Mybatis核心使用的模式,給某一個對象提供一個代理,并由代理對象控制對原對象的引用。它是一種對象結構型模式。
????????如MapperProxy為綁定我們開發的Mapper和Mapper.xml創建代理類、Plugin為每個插件創建一個代理類等。
5、組合模式
??????組合多個對象形成樹形結構以表示“整體-部分”的結構層次。
??????組合模式最關鍵的地方:葉子對象和組合對象實現相同的接口。
例如SqlNode和各個子類ChooseSqlNode等;
6、適配器模式(Adapter Pattern)
??????作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬于結構型模式,它結合了兩個獨立接口的功能。
??????例如Log的Mybatis接口和它對jdbc、log4j等各種日志框架的適配實現
7、模板方法模式(Template Pattern)
??????是基于繼承的代碼復用的基本技術。模板方法模式中,一個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現,但調用將以抽象類中定義的方式進行。這種類型的設計模式屬于行為型模式。定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。
??????例如BaseExecutor和SimpleExecutor,還有BaseTypeHandler和所有的子類如IntegerTypeHandler;
8、裝飾器模式(Decorator Pattern)
??????裝飾器模式:允許向一個現有的對象添加新的功能,同時又不改變其結構。這種類型的設計模式屬于結構型模式,它是作為現有的類的一個包裝。這種模式創建了一個裝飾類,用來包裝原有的類,并在保持類方法簽名完整性的前提下,提供了額外的功能。
??????例如Cache包中的cache.decorators子包中等各個裝飾者的實現;
9、迭代器模式(Iterator)
??????又叫游標(Cursor)模式。GOF定義為:提供一種方法訪問一個容器(container)對象中各個元素,而又不需暴露該對象的內部細節。
??????例如迭代器模式PropertyTokenizer;
總結
- 上一篇: 弹出并点击弹框关闭 自定义toast_关
- 下一篇: 797B. Odd sum