您的位置:首页 > 编程语言 > Java开发

Spring基础学习(二)——IOC(控制反转)介绍

2018-01-24 17:24 477 查看
在进行事例之前,我们需要导入Spring的Jar包,本人是基于Maven开发的,这里也推荐使用,这样就不会把工程文件大小搞地很大,团队开发时也不用把jar包传来传去的,下面简单说明一下Maven导包的过程

首先,百度搜索Maven 点击



进入界面后搜索Spring,然后点击Spring Context , 我选择了4.3X版本的最新版 ,然后复制代码块:



将代码块粘贴到pom.xml文件的<dependencies></dependencies>标签块中,保存后将会自动下载

依赖注入:

 所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部负责的。这样控制权就由应用

转移到了外部容器,控制权的转移就是所谓的反转。

例如:

以前我们写代码的方式:

public class UserService {
private UserDao userDao = new UserDao ();

public void save(User User){
userDao.save(User);
}
}//在UserService中调用UserDao,控制权在UserService中,耦合度高,如果修改了UserDao,UserService也要做相应的修改


 学习spring之后,将由Spring创建对象实例--> IoC 控制反转(Inverse of  Control)。之后需要实例对象时,从spring工厂(容器)中获得,需要将实现类的全限定名称配置到xml文件中

示例:

public interface UserService {

public void addUser();

}
public class UserServiceImpl implements UserService {

@Override
public void addUser() {
System.out.println("a_ico add user");
}

}


配置文件,开发中常用 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"> <!-- 配置service
<bean> 配置需要创建的对象
id :用于之后从spring容器获得实例时使用的
class :需要创建实例的全限定类名
-->
<bean id="userServiceId" class="com.itheima.a_ioc.UserServiceImpl"></bean>
</beans>


测试(需要导入junit的jar包,也可以直接写一个main函数进行测试):

@Test
public void demo02(){
//从spring容器获得
//1 获得容器,从类路径下读取application配置文件 
String xmlPath = "spring/applicationContext.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
//2获得内容 --不需要自己new,都是从spring容器获得
UserService userService = (UserService) applicationContext.getBean("userServiceId");
userService.addUser();

}
测试结果:控制台显示:a_ico add user

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: