Spring学习(一)
一、Spring的概述
Spring:SE/EE开发的一站式框架。它的成功来自于理念,理念包括IoC和AOP。
一站式框架:有SE/EE开发的每一层解决方案。
WEB层 :SpringMVC;
Service层 :Spring的Bean管理,Spring声明式事务;
DAO层 :Spring的Jdbc模板,Spring的ORM模块;
二、什么是IoC
概述IOC是一个容器,Spring认为一切的java资源都是java Bean,容器的目的的就是管理这些bean和它们之间的关系。所以IoC里面装载了各种Bean,包括bean的创建、行为、事件等都由IoC容器管理(怎么管理:管理对象和其依赖关系,是由IoC自己通过描述创建的,即Spring是依赖描述来完成对象的创建及其依赖关系的)。
创建对象:不用new,而是通过配置文件
1、IoC (控制反转):将对象的创建权反转给(交给)Spring :需要的资源(Bean)通过描述信息就可以得到,其中的控制权在Spring IoC容器中,它会根据描述找到使用者的资源。
<bean id="socket" class="Socket1"/> <bean id = "user" class=“xxx.User” > <property name="socket" ref="socket"/> </bean>
IoC通过描述(XML或者注解方式)并通过第三方去生成或者获取特点对象的方式。实现方式是DI(依赖注入)
DI:依赖注入,是IoC的实现方式,Spring管理这个类的时候将类的依赖的属性注入(设置)进来。
IoC容器的设计基于两个接口BeanFactory和ApplicationContext ,也叫工厂类
三、工厂类
1 、BeanFactory :老版本的工厂类(调用getBean的时候,才会生成类的实例)
2、ApplicationContext :新版本的工厂类(加载配置文件的时候,就会将Spring管理的类都实例化)
ApplicationContext 是BeanFactory的子接口之一,换句话说BeanFactory是IoC容器所定义的最底层的接口,ApplicationContext 是其高级借口之一,并且对BeanFactory做了扩展。
3、ApplicationContext有两个实现类
ClassPathXmlApplicationContext :加载类路径下的配置文件
FileSystemXmlApplicationContext :加载文件系统下的配置文件
四、applicationContext.xml配置文件
1、配置文件中配置了数据源,以及bean等信息。负责对象的组装。
2、基本流程
(1)创建工厂对象:ApplicationContext applicationContext = null;
(2)利用工厂对象的实现类加载配置文件:
applicationContext = new ClassPathXmlApplicationContext ("classpath:spring/applicationContext.xml");
(3)拿到代理对象:
UserMapper userMapper = (UserMapper) applicationContext.getBean("userMapper");
(4)通过代理对象中的方法操作数据库
User user = userMapper.findUserByName("张三");