1.配置环境
配置pom.xml,导入spring依赖包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Spring-study</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>spring-01-ioc1</module>
<module>spring-02-hellospring</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
</dependencies>
</project>
在resources下创建beans.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">
</beans
2.代码
1.创建com.xxx.dao包
UserDao接口
package com.xxx.dao;
public interface UserDao {
void getUser();
}
UserDaoImpl实现类
package com.xxx.dao;
public class UserDaoImpl implements UserDao{
public void getUser() {
System.out.println("默认获取用户的数据");
}
}
UserDaoMysqlImpl实现类
package com.xxx.dao;
public class UserDaoMysqlImpl implements UserDao{
public void getUser() {
System.out.println("mysql获取用户数据!");
}
}
UserDaoOracleImpl实现类
package com.xxx.dao;
public class UserDaoOracleImpl implements UserDao{
public void getUser() {
System.out.println("Oracle获取用户数据");
}
}
2.创建com.xxx.service包
UserService接口
package com.xxx.service;
public interface UserService {
void getUser();
}
UserServiceImpl实现类
package com.xxx.service;
import com.xxx.dao.UserDao;
public class UserServiceImpl implements UserService{
private UserDao userDao;
//利用set进行动态实现值的注入
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void getUser() {
userDao.getUser();
}
}
3.在test.java下创建测试类
MyTest测试类
import com.xxx.service.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args) {
//获取ApplicationContext;
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
UserServiceImpl userServiceImpl = (UserServiceImpl) context.getBean("UserServiceImpl");
userServiceImpl.getUser();
}
}
整体结构
3.运行结果
在beans.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="mysqlImpl" class="com.xxx.dao.UserDaoMysqlImpl"/>
<bean id="oracleImpl" class="com.xxx.dao.UserDaoMysqlImpl"/>
<bean id="userImpl" class="com.xxx.dao.UserDaoImpl"/>
<bean id="UserServiceImpl" class="com.xxx.service.UserServiceImpl">
<!--ref:引用spring容器中创建好的对象-->
<property name="userDao" ref="userImpl"/>
</bean>
</beans
在MyTest类中运行
想要查询其他类,只需要修改beans.xml里面ref的值