码迷,mamicode.com
首页 > 编程语言 > 详细

spring-ioc的学习

时间:2019-08-15 23:05:38      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:class   default   怎么   img   文件头   程序   通过   配置   xmlns   

在前面学习了mybatis的时候,我们去掉了dao层,使用mapper层来代替.

但是程序还是先到控制层,在控制层创建业务层对象,跳转至业务层,在业务层创建SqlSession对象,使用动态代理的方法取得类的mapper对象,通过mapper对象取到特定的方法,去数据库取得数据后一层一层返回,直至传到视图层.

这里出现了一个问题,那就是各层的依赖太密切了,我要换掉一层都很难.这就是高耦合.如何给他们解开之间的依赖,使之变得独立呢?

于是出现了springIOC技术,也就是控制反转技术控制是指本来是我们在new对象,变成了spring帮我们生成对象.比如控制层要是想使用业务层的方法,必须要new业务层对象.现在不用了,spring帮我们直接创建.反转是指将创建好的对象返回给调用者的过程

直接看例子

要创建学生类对象,已知有三个属性,sid,sname,sage

在src下创建applicationcontext.xml文件,文件头

<?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/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd"
       default-autowire="byName"
></beans>

在beans标签里写bean标签

技术图片

技术图片

 

在测试类中则是

直接创建

ApplicationContext对象,通过这个对象获得需要的对象.好比applicationContext里已经写好了有哪些类,你需要那些就去拿.通过stu,stu1这个名字拿

带参数的对象的拿法有两种,

1.构造方法拿,就在bean标签内再加construction-arg,但是pojo的类里必须得有这个构造方法

2.通过属性的get/set方法拿带参的对象.在bean标签里加<property>标签

如果需要修改类的属性,直接在配置文件里该就好了.这样就实现了解耦

 

但是解耦后的对象彻底的独立了,本来控制层还能调用业务层呢,现在可怎么办?

干脆一不做二不休,将类的关系也写在配置文件里,怎么样?

于是我们就有了依赖注入(DI)

 

spring-ioc的学习

标签:class   default   怎么   img   文件头   程序   通过   配置   xmlns   

原文地址:https://www.cnblogs.com/waibangma/p/11360968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!