1. 说说Spring?
答:Spring的核心是IOC/DI(控制反转、依赖注入),Aop(面向切面)。相当于把每个bean与bean之间的关系交给第 三方容器进行管理.

2.说SpringIOC、SpringAOP?
答:SpringIOC :其实就是依赖注入、控制反转。相当于把每个bean与bean之间的关系交给第三方容器管理。而这个容器就是spring
SpringAOP :面向切面的编程,或AOP,是一种编程技术,允许程序模块化横向切割关注点,或横切典型的责任划分,如日志和事务管理。 SpringAop 就是用 Java的动态代理。

3.Spring的底层实现机制是什么?
答:使用Demo4j(解析XML)+Java反射机制
Demo4j 其实就是解析XML。使用反射机制实例化bean。
3.1 什么是Java反射机制
答:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

4.SpringAOP用到了什么代理?
答:JDK动态代理:对实现接口的类生成代理
CGLib代理机制:对类生成代理

5.动态代理与静态代理区别?
答:静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 也就是说编译前,确定类型,绑定对象。
动态代理:在程序运行时,运用反射机制动态创建而成。也就是说运行时,确定类型,绑定对象。

6. Spring注入有那些方式?
答:(1)Set注入;
(2)构造函数注入依赖;
(3)静态工厂的方法注入;
(4)实例工厂的方法注入;

7.Spring有那些注解?
答:@Autowired(按类型注入)
@Service(标示为注入为服务层)
@Resource(按名称注入)
@Controller(标识控制器bean id)
@RequestMapping(表示映射URL路径)

8.简述Spring的优缺点?
答: Spring 的优点??
1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可以使用容易提供的众多服务,如事务管理,消息服务等
3.容器提供单例模式支持
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
5.容器提供了众多的辅助类,能加快应用的开发
6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring属于低侵入式设计,代码的污染极低
8.独立于各种应用服务器
9.spring的DI机制降低了业务对象替换的复杂性
10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部
缺点:
使用到了大量反射机制。反射机制非常占内存,