文章目录
Spring中IOC与DI整理(总)
一、代码案例
1、创建Maven项目
2、创建Maven的Module
3、导入jar包,配置pom.xml,并下载
<!--配置jar包-->
<dependencies>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.21</version>
</dependency>
<!--junit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
</dependencies>
4、创建com.sgz.di…包,结构在下方图
5、创建UserDao接口
package com.sgz.di.dao;
/**
* 作者:沈公子
* 日期:2022/8/5 - 11:41
* 需求:
*/
public interface UserDao {
void VIPUser();
}
6、创建UserDaoImpl实现类
package com.sgz.di.dao.impl;
import com.sgz.di.dao.UserDao;
import org.springframework.stereotype.Repository;
/**
* 作者:沈公子
* 日期:2022/8/5 - 11:42
* 需求:
*/
@Repository
public class UserDaoImpl implements UserDao {
@Override
public void VIPUser() {
System.out.println("我是VIP用户");
}
}
7、创建UserService接口
package com.sgz.di.service;
/**
* 作者:沈公子
* 日期:2022/8/5 - 11:42
* 需求:
*/
public interface UserService {
void VIPUser();
}
8、创建UserServiceImpl实现类
package com.sgz.di.service.impl;
import com.sgz.di.dao.UserDao;
import com.sgz.di.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 作者:沈公子
* 日期:2022/8/5 - 11:42
* 需求:
*/
@Service
public class UserServiceImpl implements UserService {
// 绑定两个类间的关系,在一个类中定义另外一个类的变量
@Autowired
private UserDao userDao;
@Override
public void VIPUser() {
userDao.VIPUser();
}
}
9、创建UserController类
package com.sgz.di.controller;
import com.sgz.di.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
/**
* 作者:沈公子
* 日期:2022/8/5 - 11:42
* 需求:
*/
@Controller
public class UserController {
// 绑定两个类间的关系,在一个类中定义另外一个类的变量
@Autowired
private UserService userService;
public void VIPUser(){
userService.VIPUser();
}
}
10、创建配置文件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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.sgz.di"/>
</beans>
11、创建com.sgz.di.text测试包
12、创建测试类
package com.sgz.di.test;
import com.sgz.di.controller.UserController;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 作者:沈公子
* 日期:2022/8/5 - 11:49
* 需求:
*/
public class TestDIXML {
@Test
public void test(){
ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
UserController controller = (UserController) ioc.getBean("userController");
controller.VIPUser();
}
}
二、总结
IOC注解
- @Component
- @Controller
- @Service
- @Repository
IOC包扫描
- <context:component-scan base-package=“”/>
DI注解
- @Autowired
IOC注解、IOC包扫描、DI注解 即可完成一个简单的Spring