Ioc注解
Spring针对Bean管理中创建对象提供的注解
- 1.@Component(model层)
- 2.@Service(服务层)
- 3.@Controller(控制层)
- 4.@Repository(dao层)
上面四个注解功能是一样,都可以用来创建bean实例
注解使用
- 引入aop依赖
- 开启组件扫描
<?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/beans/spring-context.xsd">
<!-- 开启组件扫描 -->
<!-- 1.如果扫描多个包,用逗号隔开 2.扫描其上层目录 -->
<context:component-scan base-package="bean1,Test"></context:component-scan>
</beans>注解方式的属性注入
//开启注解扫描
<context:annotation-config>
@AutoWired : 根据属性类型自动装配
@Repository
public class UserDaoIMpl implements UserDao{
@Override
public void adduser() {
System.out.println("userDao add");
}
}
@Service
public class UserService {
@Autowired
private UserDao userdao;
public void addUser(){
userdao.adduser();
System.out.println("添加用户");
}
}@Qualifer : 根据属性名称进行注入(必须配合@Autowired使用)
@Service
public class UserService {
@Autowired
@Qualifier(value = "userDaoIMpl")//指定注入对应名字为'userDaoIMpl'的对象
private UserDao userdao;
public void addUser(){
userdao.adduser();
System.out.println("添加用户");
}
}
@Resource : 可以根据类型注入,也可以根据名称注入
@Service
public class UserService {
// @Autowired
// @Qualifier(value = "userDaoIMpl")
// @Resource
@Resource(name = "userDaoIMpl")
private UserDao userdao;
public void addUser(){
userdao.adduser();
System.out.println("添加用户");
}
}
@value 注入普通类型(如String)
@Service
public class UserService {
// @Autowired
// @Qualifier(value = "userDaoIMpl")
// @Resource
@Resource(name = "userDaoIMpl")
private UserDao userdao;
@Value(value = "你好")
private String name;
public void addUser(){
userdao.adduser();
System.out.println(this.name);
System.out.println("添加用户");
}
}