什么是spring框架?

什么是spring框架?

1)IOC 控制反转,对象创建责任的反转,在spring中BeanFacotory是IOC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。
spring中有3中注入方式,一种是set注入,另一种是接口注入,另一种是构造方法注入。

2)AOP面向切面编程

AOP就是纵向的编程,如下图,业务1 和 业务2 都需要一个共同的操作。与其往每个业务中都添加同样的代码,不如,写一遍代码,让两个业务共同使用这段代码。

spring中面向切面编程的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是由=有继承。

3)为什么使用spring框架

在不使用spring框架之前,我们的service层中要使用dao层的对象,不得不在service层中new一个对象。
如下:
下面展示一些 内联代码片

//dao层对象
public class UserDao{
		public void insert (User user) {}
}

//service层对象
public class UserService{
		public void insert(User user) {
				UserDao userdao = new UserDao();
				userdao.insert(user);		
		}
}

存在问题:层与层之间的依赖。
使用框架之后:
下面展示一些 内联代码片

//dao层对象
public class UserDao{
		public void insert(User user){}
}
//service层对象
public class UserService{
		private UserDao userdao;
		public UserDao getUserdao(){
				return userdao;
		}
		public void setUserdao (UserDao userdao) {
				this.userdao=userdao;
		}
		public void insert(User user){
				userdao.insert(user);
		}
}

service 层要用dao层对象需要配置到xml配置文件中,至于对象是怎么创建的,关系是怎么组合的都交给了spring框架去实现。

4)框架优点:

轻量级的容器框架没有侵入性
使用IOC容器更加容易组合对象直接间关系,面向接口编程,降低耦合
AOP可以更加容易的进行功能扩展,遵循OCP开发原则;
创建对象默认是单例的,不需要在使用单例模式进行处理

5) 缺点:
业务功能依赖spring特有的功能,依赖与spring环境。

总结:

spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,是一个分层的javaEE一站式轻量级开源框架

 

原文地址:https://www.cnblogs.com/csk001/p/14223810.html