框架学习—Spring的IoC容器之XML方式

1.Spring框架的概述

1.1 什么是Spring

Spring是一个Java开源框架。
它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一是分层架构。
Spring使用基本的JavaBean来完成EJB完成的事情。
Spring的核心是控制反转(Ioc)和面向切面(AOP)。

1.2 Spring的特点

解耦合,简化开发。Spring实际是一个大工厂,可以将所有对象创建和依赖关系维护交给Spring管理。
AOP编程的支持。Spring提供面向切面编程,可以实现对程序进行权限拦截、运行监控等功能。
声明式事务的支持。只需要通过配置就可以完成对事务的管理。
方便程序测试。Spring对Junit4支持,可通过注解测试Spring程序。
降低JavaEE API的使用难度。如JDBC、Java Mail、远程调用等API,Spring都对其进行了封装。

2.SpringIoC的入门

2.1 什么是Ioc

Ioc,Inverse of Control,控制反转,Spring中的Ioc指将对象的创建权力交给Spring。
目的:松耦合。

这里写图片描述

2.2 入门案例

2.2.1 到官网下载所需Jar包
这里贴上我用的4.2版本

https://repo.spring.io/release/org/springframework/spring/4.2.0.RELEASE/

下载解压后确保有这两个文件夹:

这里写图片描述

2.2.2 导入Spring的开发包
因为只用到Spring的IoC功能,故只导入4个Jar包+2个Spring框架所需的日志Jar包

这里写图片描述

2.2.3 创建业务层接口与实现类
如:UserService和UserServiceImpl

这里写图片描述

2.2.4 在src下创建并编写Spring框架的配置文件(默认名称:applicationContext.xml)

这里写图片描述

2.2.5 编写程序,通过Spring框架的工厂方式来获取到UserService接口的实现类

这里写图片描述

2.2.6 了解:Spring框架中的工厂
ApplicationContext接口
两个实现类:
ClassPathXmlApplicationContext:加载类路径下的Spring配置文件。
FileSystemXmlApplicationContext:加载本地磁盘的Spring配置文件。

BeanFactory接口(已过时)
使用示例:

这里写图片描述

ApplicationContext对比BeanFactory
ApplicationContext:加载配置文件时就创建Bean对象的实例,还提供其它功能如:事件传递、Bean自动装配、各种不同应用层的Context实现。
BeanFactory:延迟加载,第一次使用getBean时才会初始化Bean。

3.IoC容器XML的方式

3.1 配置文件中的标签

3.1.1 id属性和name属性的区别
    * id:Bean起个名字,在约束中采用ID的约束,唯一。
    取值要求:必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号,不能出现特殊字符。
    * name:Bean起个名字,没有采用ID的约束(了解)。
    取值要求:name:出现特殊字符.如果<bean>没有id的话 , name可以当做id使用
    Spring框架在整合Struts1的框架的时候,Struts1的框架的访问路径是以/开头的,例如:/bookAction

3.1.2 class属性:Bean对象的全路径。

3.1.3 scope属性:scope属性代表Bean的作用范围。
    * singleton:单例(默认值)。
    * prototype:多例,在Spring框架整合Struts2框架的时候,Action类也需要交给Spring做管理,配置把Action类配置成多例!!
    * request:应用在Web项目中,每次HTTP请求都会创建一个新的Bean。
    * session:应用在Web项目中,同一个HTTP Session 共享一个Bean。
    * globalsession:应用在Web项目中,多服务器间的session。

3.1.4 Bean对象的创建和销毁的两个属性配置(了解)。
    * 说明:Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法。
    * init-method:当bean被载入到容器的时候调用init-method属性指定的方法。
    * destroy-method:当bean从容器中删除的时候调用destroy-method属性指定的方法。

3.2 依赖注入(DI)

3.2.1 DI
Dependency Injection,依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入组件中
3.2.2 示例
如果UserServiceImpl中有一个属性,那么可以使用DI将属性的值传入。

3.3 Setter实现DI(常用)

这里写图片描述

3.4 constructor实现DI

这里写图片描述

3.5 Spring2.5版本增加一种名称空间的注入(了解)

语法:p:属性名=””; p:属性名-ref=””;

这里写图片描述

3.6 Spring3.0版本增加一种SpEL注入方式(了解)

语法:#{值}

这里写图片描述

3.7 数组、集合(List、Set、Map)、Properties的注入

这里写图片描述

猜你喜欢

转载自blog.csdn.net/honhong1024/article/details/78447480