Spring基础学习(二)——IOC(控制反转)介绍
在进行事例之前,我们需要导入Spring的Jar包,本人是基于Maven开发的,这里也推荐使用,这样就不会把工程文件大小搞地很大,团队开发时也不用把jar包传来传去的,下面简单说明一下Maven导包的过程
首先,百度搜索Maven 点击
进入界面后搜索Spring,然后点击Spring Context , 我选择了4.3X版本的最新版 ,然后复制代码块:
将代码块粘贴到pom.xml文件的
依赖注入:
所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部负责的。这样控制权就由应用
转移到了外部容器,控制权的转移就是所谓的反转。
例如:
以前我们写代码的方式:
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
还没有评论,来说两句吧...