1.谈谈你对 Spring 的理解(2017-11-13-lyq)…389
- (控制反转IOC)传统的java开发模式中,通常是通过new创建一个对象的。而在spring开发模式中,spring使用了工厂模式为我们创建了对象,我们只需要直接调用spring创建的对象。
- (依赖注入DI),spring 使用 javaBean 对象的 set 方法或者带参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程,就是依赖注入的思想。
- (面向切面编程AOP),在面向对象的思想中,我们将事物纵向抽成一个个对象,而在面向切面编程中,我们将一个个的对象某些类似的方面横向,对这个切面进行一些权限管理、事务管理、记录日志等公共操作处理的过程就是面向切面编程的思想。
2.Spring 中的设计模式(2017-11-13-lyq)…389
- 单例模式——spring中两种代理方式,若目标对象实现了若干接口,spring使用jdk的java.lang.reflect.Proxy类代理。若目标对象没有实现任何接口,spring使用cglib库生成目标类的子类
- 模板方式模式——用来解决代码重复问题:RestTemplate、JmsTemplate、JapaTemplate
- 前端控制器模式——spring提供了前端控制器DispatherServlet来请求进行分发。
- 试图模式
- 工厂模式——在工厂模式中,我们在创建对象时不会向外界暴露创建逻辑,只是通过一个接口来指向新创建的对象。Spring中使用beanFactory来创建对象实例。
3.Spring 的常用注解(2017-11-13-lyq)…390
- Spring 在 2.5 版本以后开始支持注解的方式来配置依赖注入。可以用注解的方式来代替 xml 中 bean 的描述。注解注入将会被容器在 XML 注入之前被处理,所以后者会覆盖掉前者对于同一个属性的处理结果。注解装配spring中默认是关闭的。所以需要在 spring 的核心配置文件中配置一下才能使用基于注解的装配模式。<context:annotation-config />
- 常用的注解:
- @Repository dao层
- @Controller controller层
- @Service service层
- @Resource 注解配置生成对象
- @Autowired
- @Qualifier和@Autowired搭配使用,用于消除特定bean自动装配的歧义。
4. 简单介绍一下 Spring bean 的生命周期(2017-11-21-gxb) …391
bean初始化:有两种方式初始化
1.在配置文件中通过指定init-method属性来完成
2.实现 org.springframwork.beans.factory.InitializingBean 接口
bean 销毁:销毁有两种方式
1.使用配置文件指定的 destroy-method 属性
2.实现org.springframwork.bean.factory.DisposeableBean 接口
5.Spring 结构图(2017-11-22-lyq)…392
6.Spring 能帮我们做什么?(2017-11-22-lyq)…394
- spring能帮我们根据配置文件创建及组装对象之间的依赖关系
- spring面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
- spring能非常简单的帮我们管理数据库事务
- spring还能与第三方数据库访问框架无缝集成,而且也提供了一套JDBC访问模板,方便数据库访问。
- spring能方便的与javaee整合,与更多技术整合比如redis
7.请描述一下 Spring 的事务(2017-11-22-lyq) …395
8.BeanFactory 常用的实现类有哪些?(2017-12-03-gxb)…398
- Bean是工厂模式的一个实现。提供了控制反转功能,用来把应用的配置和依赖从真的应用代码中分离出来。常用的BeanFactory实现有DefaultListableBeanFactory 、 XmlBeanFactory 、 ApplicationContext 等。
9.解释 Spring JDBC、Spring DAO 和 Spring ORM(2017-12-03-gxb)…399
- Spring DAO 并非spring的一个模块,实际上是指示你写DAO操作,写好DAO操作的一些规范。
- Spring JDBC提供jdbc模板类
- Spring ORM
简单介绍一下 Spring WEB 模块。(2017-12-03-gxb)…399
Spring 配置文件有什么作用?(2017-12-03-gxb)…400
- spring配置文件是个XML文件,这个文件包含了类信息,描述了如何配置他们,以及如何相互调用
什么是 Spring IOC 容器?(2017-12-03-gxb)…400
- IOC 控制反转:Spring IOC 负责创建对象,管理对象。通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。
IOC 的优点是什么?…400
- IOC或依赖注入把应用的代码量降到最低,使得应用容易测试,单元测试不再需要单例和JNDI查找机制。最小的代价和最小的侵入性使松散耦合得以实现,IOC容器支持加载服务时的饿汉式初始化和懒加载。
ApplicationContext 的实现类有哪些? (2017-12-03-gxb)…400
BeanFactory 与 AppliacationContext 有什么区别(2017-12-03-gxb)…401
什么是 Spring 的依赖注入?(2017-12-04-gxb) …401
通俗的理解是:平常我们是new一个实例,这个实例的控制权是程序员,而现在控制反转实例工作不由我们程序员来做而是交给spring容器来做。
有哪些不同类型的 IOC(依赖注入)方式?(2017-12-04-gxb)…401
什么是 Spring beans? (2017-12-04-gxb)…402
一个 Spring Beans 的定义需要包含什么?(2017-12-04-gxb)…402
11
- 你怎样定义类的作用域? (2017-12-04-gxb)…403
- Spring 支持的几种 bean 的作用域。(2017-12-04-gxb)…403
- Spring 框架中的单例 bean 是线程安全的吗? (2017-12-04-gxb) …403
- 什么是 Spring 的内部 bean?(2017-12-04-gxb)…404
- 在 Spring 中如何注入一个 java 集合?(2017-12-04-gxb)…404
- 什么是 bean 的自动装配?(2017-12-04-gxb) …404
- 解释不同方式的自动装配 。(2017-12-04-gxb)…404
- 什么是基于 Java 的 Spring 注解配置? 给一些注解的例子(2017-12-05-gxb)…405
- 什么是基于注解的容器配置? (2017-12-05-gxb)…405
- 怎样开启注解装配?(2017-12-05-gxb) …405
- 在 Spring 框架中如何更有效地使用 JDBC? (2017-12-05-gxb) …405
- 使用 Spring 通过什么方式访问 Hibernate? (2017-12-05-gxb)…406
- Spring 支持的 ORM 框架有哪些?(2017-12-05-gxb)…406
- 简单解释一下 spring 的 AOP(2017-12-05-gxb) …406
- 在 Spring AOP 中,关注点和横切关注的区别是什么?(2017-12-05-gxb)…407
- 什么是连接点?(2017-12-05-gxb)…407
- Spring 的通知是什么?有哪几种类型?(2017-12-05-gxb) …407
- 什么是切点?(2017-12-05-gxb)…408
- 什么是目标对象? (2017-12-05-gxb) …408
- 什么是代理? (2017-12-05-gxb)…408
- 什么是织入?什么是织入应用的不同点?(2017-12-05-gxb)…408