一.Spring
上一篇文章描述了SpringMVC的运行流程,本篇文章开始讲Spring。我们已经知道,在SSM里,系统分为了表现层、service层、controller层、DAO层。那么Spring是干什么的,在SSM里又扮演了哪些角色,在这四个层里的哪些层发挥了作用呢?
1.Bean
了解Spring之前,先讲一下Bean。
我们都知道JAVA是面向对象的语言,也就是类,对象有方法和属性,在调用对象的时候需要先实例化对象,然后来调用对象里的方法和属性,这是java开发的基本原则之一。不实例化,是没有办法使用对象的内容的。Bean就是把这些类都注册起来,注册的方式是给这些类加上注解,把他们注册到Spring IOC。Bean可以理解为类的代理人(通过java反射实现),通过成为类的代理人,就能够代表类,拥有该类的东西。
那什么是注解,在Spring里注解有以下几种:
@Component , @Repository , @ Controller , @Service , @Configration
都是@开头的,有没有让大家想起微博,在微博上如果我们发一个博客,@某某,那么这个人就会收到通知,优先去查看你的这一条博客,并且回复你。在Spring中是一个道理,你使用了@这个符号,就代表这是一个注解,Spring扫描出来就会优先过来看,它会先把这个类注册成为一个bean,或者给你一个bean来使用。
为什么是注册或者使用呢,因为注解本身就分为两类:①注册类②实用类
实用类:这一类的注解就是把已经在XML里配置好的bean拿出来用,完成属性、方法的组装,有以下两种:
@Autowired , @Resource
注册类:这类注解就是把你要实例化的对象转化为一个bean,放到IOC容器里,跟上面的@Autowired , @Resource配合使用,有以下几种:
@Component , @Repository , @Controller , @Service , @Configration
2.IOC
我们在讲bean的时候多次提到,要将bean注册到ioc里,这个ioc是什么呢?
首先我们来看一句话,这是关于Spring官方给的一句话:Spring是一个轻量级的控制反转和面向切片的容器框架。这里面的控制反转就是IOC,面向切片就是AOP。
IOC控制反转也叫做依赖注入。利用了工厂模式(工厂提货,不用管生产线)把对象交给了容器来管理,这个容器就是Spring,所以我们往往也把Spring叫做Bean的大工厂。在使用时,我们只需要在spring配置文件中配置相应的bean,设置相关的属性,就可以让spring容器来生成类的实例化对象以及管理对象。
听不明白的话我们换一下这句话,所谓的控制反转,就是把创建对象(bean)和