spring-210727-05–IOC容器–Bean管理注解方式-注入属性@Autowired&@Qualifier.md
@Autowired: 根据属性类型进行自动注入
@Qualifier: 根据属性名称进行注入
@Resource: 可以根据类型注入,也可以根据名称注入
@Value: 注入普通类型属性
@Autowired使用:
第一步:
创建service和dao对象,在service和dao类添加创建对象的注解。
第二步:
在service注入dao对象,在service类添加dao类型属性,在属性上面使用注解
@Qualifier使用:
和@Autowired注解一起使用
演示
UserDao.java
package com.bgy.spring.dao;
public interface UserDao {
void add();
}
UserDaoImpl.java(@Autowired)
package com.bgy.spring.dao;
import org.springframework.stereotype.Repository;
@Repository
public class UserDaoImpl implements UserDao{
@Override
public void add() {
System.out.println("dao add.........");
}
}
UserService.java(@Autowired)
package com.bgy.spring.service;
import com.bgy.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void add(){
System.out.println("service add.........");
userDao.add();
}
}
UserDaoImpl02.java(@Qualifier)
package com.bgy.spring.dao;
import org.springframework.stereotype.Repository;
@Repository(value = "userDaoImpl02")
public class UserDaoImpl02 implements UserDao{
@Override
public void add() {
System.out.println("dao add.........");
}
}
UserService02.java(@Qualifier)
package com.bgy.spring.service;
import com.bgy.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service
public class UserService02 {
@Autowired
@Qualifier("userDaoImpl02")
private UserDao userDao;
public void add(){
System.out.println("service add.........");
userDao.add();
}
}
userbean.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 http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.bgy.spring.service,com.bgy.spring.dao"></context:component-scan>
</beans>
TestUser.java
import com.bgy.spring.service.UserService;
import com.bgy.spring.service.UserService02;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestUser {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("userbean.xml");
UserService userService = context.getBean("userService", UserService.class);
System.out.println(userService);
userService.add();
}
@Test
public void test02(){
ApplicationContext context = new ClassPathXmlApplicationContext("userbean02.xml");
UserService02 userService02 = context.getBean("userService02", UserService02.class);
System.out.println(userService02);
userService02.add();
}
}