简单的说一下Spring,若有错..麻烦大家指出..
Spring 它是什么:Spring是一个开源框架;用于简化采用Java语言开发企业级程序的一个分层的框架;
Spring 的作用:
为什么要用Spring:
1、提供了IOC,AOP功能的容器,方便编程;
2、简化了J2EE或非J2EE的开发与设计;
3、Soring是一个轻量级的框架,并且是一个非侵入式的框架;
Spring 的七大模块:
1、Spring Aop;
什么是AOP:它是一种面向切面编程;
它的作用是什麽:就是为了将业务逻辑和非业务逻辑代码分离开来,
还可以让Spring事务得到了更广泛的使用;
2、Spring ORM;
什麽是Spring ORM:ORM并不是一种具体的产品,而是一类框架的总称,它概述了这类框架的基本特征:完成面向对象的程序设计语言到关系数据库的映射;
用他有什么好处:面向对象的建模、操作,多态性、继承,容易使用,很好理解;
3、Spring Web;
什么是 Spring web:提供Web应用上下文,对Web开发提供功能上的支持;
4、Spring Web MVC;
什么是 Spring Web MVC:全功能MVC框架,作用相当于struts;
使用Spring web MVC的好处:Spring的controller在它 的IOC容器管理下,可以像普通的bean来管理一样;
5、Sring Dao;
什么是 Spring Dao:提供事务支持,JDBC支持;
6、String Context;
什么是 Sptring Context:扩展核心容器,提供事件处理、国际化,还能提供一些企业级的功能;
7、Spring Core;
什么是 Spring Core:核心容器,BeanFactory提供了组件生命周期的管理,组件的创建,装配,销毁等功能
IOC (控制反转):
IOC在Spring中担任着一个重要的位置:是spring的核心;IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(依赖注入)来实现的;
IOC的好处:1、管理bean的生命周期
2、减少了java代码
3、降低了耦合度
4、并且让对象与对象的关系更好的被管理了;
IoC的缺点:1、生成一个对象的步骤变复杂了
2、对象生成因为是使用反射编程,在效率上有些损耗
依赖注入有三种方式:
工厂注入:工厂注入必须写一个接口类;侵入式非常强,不方便移植;
set方法注入:这种方式也是Spring推荐的方式;无侵入式;
构造方法注入:这种方式Spring同样给予了实现;这种方式不是没有侵入式,只是它将侵入式转移了;
Spring的MVC与struts2的MVC比较:
性能:spring比struts快一点。因为spring mvc是基于方法的设计,而sturts是基于类,所以导致每次发一次请求都会实例一个action,每个action都要重新被注入属性。
机制上:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。
设计思想上:struts更加符合oop(面向对象)的编程思想, spring就比较谨慎,在servlet上扩展。
Spring AOP:
一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化;
使用AOP的好处:
1、解耦,降低了耦合度;
2、让系统更容易被扩展;
3、有很好的代码重用性;
AOP的核心:
切面:切面,是对交叉业务逻辑的统称。
连接点:指切面可以织入到目标对象的位置方法或者属性;
通知:指切面的具体实现。
切入点:指通知应用到哪些类的哪些方法或属性之上的规则。
AOP使用代理:
(1) 将切面使用动态代理的方式动态插入到目标对象(被代理类),形成一个代理对象;
(2) 目标对象如果没有实现代理接口,那么Spring会采用CGLib来生成代理对象,该代理对象是目标对象的子类;
(3) 目标对象如果是final修饰类,并且也没实现代理接口,就不能运用AOP;