Spring作为现在最流行Java 开发技术,其内部源码设计非常优秀。如果你不会Spring,那么很可能面试官会让你回家等通知。
Spring是什么?
有一个工地,几百号人在用铁锹铲子挖坑。
如果开一辆挖掘机来,用一天时间干的活就相当于一个工人一个月的工作量。而且这个挖掘机是免费开源的,不用花钱买,仅仅需要学习掌握如何操作。你会如何选择?
这几百号人的工地就是企业应用项目实施团队,而挖掘机就是Spring。
Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。
Spring框架为开发Java应用程序提供了全面的基础架构支持。Spring包含了一些很好的功能,如依赖注入和开箱即用的模块:
Spring JDBC
Spring MVC
Spring Security
Spring AOP
Spring ORM
Spring Test
这些模块能极大缩短应用程序的开发时间,提高我们的工作效率。
Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect-oriented programming,AOP)。
我整理了一份Spring框架的知识点,希望对大家有所帮助!
Spring概述
- 什么是spring?
- Spring框架的设计目标,设计理念,和核心是什么
- Spring的优缺点是什么?
- Spring有哪些应用场景
- Spring由哪些模块组成?
- Spring 框架中都用到了哪些设计模式?
- 详细讲解一下核心容器(spring context应用上下文) 模块
- Spring框架中有哪些不同类型的事件
- Spring 应用程序有哪些不同组件?
- 使用 Spring 有哪些方式?
Spring控制反转(IOC)
- 什么是Spring IOC 容器?
- 控制反转(IoC)有什么作用
- IOC的优点是什么?
- Spring IoC 的实现机制
- Spring 的 IoC支持哪些功能
- BeanFactory 和 ApplicationContext有什么区别?
- Spring 如何设计容器的,BeanFactory和ApplicationContext的关系详解
- ApplicationContext通常的实现是什么?
- 什么是Spring的依赖注入?
- 依赖注入的基本原则
- 依赖注入有什么优势
- 有哪些不同类型的依赖注入实现方式?
- 构造器依赖注入和 Setter方法注入的区别
Spring Beans
- 什么是Spring beans?
- 一个 Spring Bean 定义 包含什么?
- 如何给Spring 容器提供配置元数据?Spring有几种配置方式
- Spring配置文件包含了哪些信息
- Spring基于xml注入bean的几种方式
- 你怎样定义类的作用域?
- 解释Spring支持的几种bean的作用域
- Spring框架中的单例bean是线程安全的吗?
- Spring如何处理线程并发问题?
- 解释Spring框架中bean的生命周期
- 哪些是重要的bean生命周期方法? 你能重载它们吗?
- 什么是Spring的内部bean?什么是Spring inner beans?
- 在 Spring中如何注入一个java集合?
- 什么是bean装配?
- 什么是bean的自动装配?
- 解释不同方式的自动装配,spring 自动装配 bean 有哪些方式?
- 使用@Autowired注解自动装配的过程是怎样的?
- 自动装配有哪些局限性?
- 你可以在Spring中注入一个null 和一个空字符串吗?
Spring注解
- 什么是基于Java的Spring注解配置? 给一些注解的例子
- 怎样开启注解装配?
- @Component, @Controller, @Repository, @Service 有何区别?
- @Required 注解有什么作用
- @Autowired 注解有什么作用
- @Autowired和@Resource之间的区别
- @Qualifier 注解有什么作用
- @RequestMapping 注解有什么用?
Spring数据访问
- 解释对象/关系映射集成模块
- 在Spring框架中如何更有效地使用JDBC?
- 解释JDBC抽象和DAO模块
- spring DAO 有什么用?
- spring JDBC API 中存在哪些类?
- JdbcTemplate是什么
- 使用Spring通过什么方式访问Hibernate?使用 Spring 访问 Hibernate 的方法有哪些?
- 如何通过HibernateDaoSupport将Spring和Hibernate结合起来?
- Spring支持的事务管理类型, spring 事务实现方式有哪些?
- Spring事务的实现方式和实现原理
- 说一下Spring的事务传播行为
- 说一下 spring 的事务隔离?
- Spring框架的事务管理有哪些优点?
- 你更倾向用那种事务管理类型?
Spring面向切面编程(AOP)
- 什么是AOP
- Spring AOP and AspectJ AOP 有什么区别?AOP 有哪些实现方式?
- JDK动态代理和CGLIB动态代理的区别
- 如何理解 Spring 中的代理?
- 解释一下Spring AOP里面的几个名词
- Spring在运行时通知对象
- Spring只支持方法级别的连接点
- 在Spring AOP 中,关注点和横切关注的区别是什么?在 spring aop 中 concern 和 cross-cutting concern 的不同之处
- Spring通知有哪些类型?
- 什么是切面 Aspect?
- 解释基于XML Schema方式的切面实现
- 解释基于注解的切面实现
- 有几种不同类型的自动代理?
整理这份资料也花了自己不少精力,也多亏了好多朋友的支持和建议!