当前位置 : 首页 » 文章分类 :  开发  »  面试准备05-Spring框架

面试准备05-Spring框架

Spring面试准备笔记


Spring

Spring DI/IOC(反射)

在Spring的工作方式中,所有的类都会在spring容器中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。

依赖注入的思想是通过反射机制实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。 总而言之,在传统的对象创建方式中,通常由调用者来创建被调用者的实例,而在Spring中创建被调用者的工作由Spring来完成,然后注入调用者,即所谓的依赖注入or控制反转。 注入方式有两种:依赖注入和设置注入; IoC的优点:降低了组件之间的耦合,降低了业务对象之间替换的复杂性,使之能够灵活的管理对象。


Spring AOP(代理)

Spring AOP 相关内容已整理到笔记 Spring-AOP


Spring事务

Spring 事务相关内容已整理到笔记 Spring-Transaction


Java JPA(持久化API)

JPA(Java Persistence API)JAVA持久化API定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。
JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它又不限于EJB 3.0,可以作为POJO持久化的标准规范,可以脱离容器独立运行,开发,测试。
JPA是一种规范,而Hibernate和iBATIS等是开源持久框架,是JPA的一种实现。

JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:
1、ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;
2、JPA的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。
3、查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

使用 Spring Data JPA 简化 JPA 开发
https://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/

JPA和Hibernate的关系

JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个。从功能上来说,JPA现在就是Hibernate功能的一个子集。可以简单的理解为JPA是标准接口,Hibernate是实现。


Spring 源码

随笔分类 - spring
http://www.cnblogs.com/xiaoxi/category/891936.html
AOP 的利器:ASM 3.0 介绍
https://www.ibm.com/developerworks/cn/java/j-lo-asm30/index.html


Spring加载

Spring加载可以利用ServletContextListener实现,也可以采用load-on-startup Servlet 实现,但是当filter需要用到bean时,由于加载顺序是:先加载filter后加载servlet,则filter中初始化操作中的bean为null;所以,如果过滤器中要使用到bean,此时就可以根据加载顺序listener -> filter -> servlet,将spring的加载改成Listener的方式。

利用监听器ContextLoaderListener加载Spring

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

其中ContextLoaderListener的作用就是启动Web容器时,自动装配applicationContext.xml的配置信息,执行它所实现的方法。

利用启动时初始化的Servlet加载Spring

<servlet>
    <servlet-name>context</servlet-narne>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

Spring bean生命周期

相关内容已整理到笔记 Spring-IOC


Spring和Spring Boot区别

Spring boot是一个在Spring 的基础上搭建的全新的微框架,其目的是简化Spring的搭建和开发过程。

Spring Boot可以以jar包的形式来运行,运行一个Spring Boot项目我们只需要通过java -jar xx.jar类运行。非常方便。

Spring Boot主要特性
(1)遵循“习惯优于配置”的原则,使用Spring Boot只需要很少的配置,大部分的时候我们直接使用默认的配置即可;
(2)项目快速搭建,可以无需配置的自动整合第三方的框架;
(3)可以完全不使用XML配置文件,只需要自动配置和Java Config;
(4)内嵌Servlet容器,降低了对环境的要求,可以使用命令直接执行项目,应用可用jar包执行:java -jar;
(5)提供了starter POM, 能够非常方便的进行包管理, 很大程度上减少了jar hell或者dependency hell;
(6)运行中应用状态的监控;
(7)对主流开发框架的无配置集成;
(8)与云计算的天然继承;

为什么越来越多的开发者选择使用Spring Boot
http://blog.csdn.net/xlgen157387/article/details/52830071


上一篇 面试准备06-数据库

下一篇 2018年运动记录

阅读
评论
1,317
阅读预计5分钟
创建日期 2018-04-05
修改日期 2018-11-20
类别

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论