后端-框架-Spring-IoC-注解注入-自动装配

后端-框架-Spring-IoC-注解注入

通过注解来代替在ApplicationContext设置bean标签
注解 Value
@Service("")
@Autowired 先按类名,再按属性名
@Qualifier("")
@Resource(name="") 先按属性名,再按类名
@Service("UserDao")
public class UserDaoImpl implements UserDao {
	public void save(User user) {
		System.out.println("保存用户信息到数据库");
	}
}

通过类中属性设置注解1

@Autowired

@Service("UserService")
public class UserServiceImpl implements UserService {
	//required=false匹配失败不报异常
	@Autowired(required=true)	//实现类型自动匹配
	@Qualifier("UserDao")	//人工设置匹配的类型名
	private UserDao dao;

	public void setDao(UserDao dao) {
		this.dao = dao;
	}

	public void addNewUser(User user) {
		dao.save(user);
	}
}

@Resource

@Service("UserService")
public class UserServiceImpl implements UserService {
	@Resource(name="UserDao")
	private UserDao dao;

	public void addNewUser(User user) {
		dao.save(user);
	}
}

通过类中入参方法设置注解2

@Autowired

@Service("UserService")
public class UserServiceImpl implements UserService {
	private UserDao dao;
	
	@Autowired
	public void setDao(@Qualifier("UserDao")UserDao dao) {
		this.dao = dao;
	}

	public void addNewUser(User user) {
		dao.save(user);
	}
}

@Resource

@Service("UserService")
public class UserServiceImpl implements UserService {
	private UserDao dao;
	
	@Resource(name="UserDao")
	public void setDao(UserDao dao) {
		this.dao = dao;
	}
	
	public void addNewUser(User user) {
		dao.save(user);
	}
}

通过类中构造方法设置注解3

@Service("UserService")
public class UserServiceImpl implements UserService {
	private UserDao dao;
	
	@Autowired
	public UserServiceImpl(@Qualifier("UserDao")UserDao dao) {
		this.dao=dao;
	}

	public void addNewUser(User user) {
		dao.save(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"
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.3.xsd"
    >
    <!-- 通过设置包名扫描包 -->
    <context:component-scan base-package="cn.dao.cn.service"/>

猜你喜欢

转载自blog.csdn.net/qq_40925226/article/details/83684163