框架
Spring使用IOC(控制反转)将对象控制权交给用户,避免改动业务层(Service层),同时摆脱了new对象操作
配置文件不能注入抽象类或接口的对象
导包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
代码
Dao接口
package com.tl.dao;
/**
* @author tl
*/
public interface UserDao {
public void getUser();
}
Dao接口实现类
package com.tl.dao;
/**
* @author tl
*/
public class UserDaoImpl implements UserDao{
public void getUser() {
System.out.println("获取默认用户数据");
}
}
Service接口
package com.tl.service;
/**
* @author tl
*/
public interface UserService {
public void get();
}
Service接口实现类
package com.tl.service;
import com.tl.dao.UserDao;
/**
* @author tl
*/
public class UserServiceImpl implements UserService{
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void get() {
userDao.getUser();
}
}
配置文件
<?xml version="1.0" encoding="UTF8"?>
<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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--注入对象-->
<bean id="tl" class="com.tl.dao.UserDaoImpl"/>
<bean id="ServiceImpl" class="com.tl.service.UserServiceImpl">
<!--设置业务层对象的属性-->
<property name="userDao" ref="tl"/>
</bean>
</beans>
用户层
import com.tl.service.UserService;
import com.tl.service.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author tl
*/
public class Test {
@org.junit.Test
public void test1(){
ApplicationContext context =
new ClassPathXmlApplicationContext("beans.xml");
UserServiceImpl userService=(UserServiceImpl)context.getBean("ServiceImpl");
userService.get();
}
}