首页 > 编程语言 > 详细

spring-IoC和DI

时间:2021-08-16 10:29:49      阅读:18      评论:0      收藏:0      [点我收藏+]

Ioc:控制反转

控制反转:IoC,由原来的主动创建对象,改为被动获得对象。

 1.导入jar包:4个基础(必须)包,1个依赖包

技术分享图片

 

 

 2.实现service接口和目标类

 3.编写配置文件:

  在任意位置(习惯在classpath)创建任意(习惯applicationContext.xml)名称文件。

  将配置文件的schema文件导入到项目中。在配置文件中配置servcie目标类。

  <bean  id=""  class=""></bean>

 4.测试

技术分享图片

 

代码实现:

目录结构:

技术分享图片

  

创建UserService:

package com.spring01.service;

public interface UserService {
void findUser() throws Exception;
}
 

创建UserService实现类UserServiceImpl

package com.spring01.service;

public class UserServiceImpl implements UserService{

@Override
public void findUser() throws Exception {
System.out.println("UserServiceImpl.findUser()");
}
}

 

创建bean.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">

<!--
bean:声明一个bean,java类
id:指定bean的唯一标识
class:指定bean的完全路径
-->
<bean id="UserService" class="com.spring01.service.UserServiceImpl"></bean>
</beans>

 

创建测试类:

package com.spring01.test;

import com.spring01.service.UserService;
import org.junit.Test;
/*import org.springframework.beans.factory.BeanFactory;*/
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDemo {
@Test
public void test1() throws Exception {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
UserService us = (UserService) ac.getBean("UserService");
us.findUser();
}
}

 

DI:依赖注入

依赖注入:DI。A对象需要依赖B对象,将B对象注入给A。

1.编写dao接口和实现类。

2.编写service接口和实现类。service实现类需要依赖dao类。

3.编写配置文件

  <bean  id=""  class=""><property  name=""  ref=""></property></bean>

4.测试。

代码实现:

目录结构:

技术分享图片

 

创建UserDao:

package com.spring03.di;

public interface UserDao {
void insertUser() throws Exception;
}

 

创建UserDao的实现类UserDaoImpl:

package com.spring03.di;

public class UserDaoImpl implements UserDao{
@Override
public void insertUser() throws Exception {
System.out.println("UserDaoImpl.insertUser()用户注册成功");
}
}

 

创建UserService:

package com.spring03.di;

public interface UserService {
void saveUser() throws Exception;
}

 

创建UserService实现类:

package com.spring03.di;

public class UserServiceImpl implements UserService{
private UserDao userDao;

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

@Override
public void saveUser() throws Exception {
userDao.insertUser();
}
}

 

创建bean.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">

<bean id="UserDao" class="com.spring03.di.UserDaoImpl"></bean>
<bean id="UserService" class="com.spring03.di.UserServiceImpl">
<!-- 依赖注入
UserService对象需要依赖userDao对象 ,将userDao注入给userService
-->
<property name="userDao" ref="UserDao"></property>
</bean>
</beans>

 

创建测试类:

package com.spring03.di;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDemo {
@Test
public void test() throws Exception{
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
UserService userService = (UserService) ac.getBean("UserService");
userService.saveUser();
}
}

 

spring-IoC和DI

原文:https://www.cnblogs.com/mataoblogs/p/15145497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!