Spring的控制反转
来源:互联网 发布:淘宝大v达人写女装 编辑:程序博客网 时间:2024/06/06 16:59
先简单介绍一下Spring是个啥↓
Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架。它属于一种一站式框架,对于javaee的每一层它都提供自己的解决技术。web层使用SpringMVC,service层使用控制反转,dao层使用jdbcTemplate。今天主要介绍service层的控制反转:
定义:所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。
简而言之,对象的创建不是通过new实现,而是交给Spring配置创建对象。
实现:Spring框架的IoC实现有两种方式,一种是配置文件,另一种是注解方式。
配置文件(xml)方式
- Step1: 添加spring类库(2个)。
- Step2:编写相关类(service及dao接口和实现类)。
- Step3:编写配置文件beans.xml配置step2中类。
注解(annotation)方式
- Step1: 添加spring类库(3个,加common-annotations.jar)。
- Step2:编写相关类(service及dao接口和实现类)并在实现类相应位置添加注解
- Step3:编写配置文件beans.xml
我们来看一下配置文件实现的方式(注解方式明天再说):
在IoC中,所有的对象都称为bean。首先需要创建xml配置文件,然后引用Spring的约束,如下↓
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">; ......</beans>
然后,写上需要创建的对象:id是对象的名称,不能含有特殊符号(想用符号可以用name);class是想要创建的对象所对应的类的路径。
<bean id=“user" class="com.csdn.class.User"/>
上面实例化bean采用的是三个方法中的采用类的无参构造器实例化,剩下两种分别是静态工厂方法实例化和实例工厂方法实例化。后两种方法用的比较少,就不展开说了。
下面是具体使用:假设有个User类,现在开始获取User的对象
public class TestIoc { @Test public void test(){ //加载配置文件 ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml"); //获取对象 User user=(User)context.getBean("user"); }}
这样就完成了对象的获取。
IOC底层的原理是在一个工厂类中通过dom4j读取beans的配置文件,然后利用反射创建对象并返回。这些操作Spring已经帮我们封装好了,我们直接用就可以了。
- spring的控制反转
- Spring的控制反转
- spring的反转控制
- Spring的控制反转
- Spring的控制反转
- Spring控制反转(IoC)的理解
- 关于Spring控制反转的“强暴”解释
- Spring控制反转(IoC)的理解
- Spring控制反转(IoC)的理解
- Spring控制反转(IoC)的理解
- Spring控制反转(IoC)的理解
- Spring的控制反转与依赖注入
- Spring的控制反转与依赖注入
- Spring控制反转(IoC)的理解
- Spring控制反转的通俗解释【转】
- Spring 控制反转的几种方式
- spring IOC 控制反转的简单理解
- Spring对于控制反转的误解
- 从零开始前端学习[20]:前端与后台可能需要使用交互的表单form,input标签
- java枚举类的使用
- JMS规范和JMS中的API
- C的初体验
- MySQL_(Not Exists)_spring定时任务执行客户流失
- Spring的控制反转
- oracle卸载及安装
- 用一张图片来修改osgViewer的背景
- 第一个Servlet程序02
- 923总结
- 电子音乐的风格简单介绍及DJ推荐
- CentOS6.5创建FTP服务器和用PSFTP进行文件上传
- 简论中国羽球的现状及未来
- SSH与SSM学习之Struts210——Struts2基本流程(源码)