Skip to content

Ioc注解

Spring针对Bean管理中创建对象提供的注解

  • 1.@Component(model层)
  • 2.@Service(服务层)
  • 3.@Controller(控制层)
  • 4.@Repository(dao层)

上面四个注解功能是一样,都可以用来创建bean实例

注解使用

  1. 引入aop依赖
  2. 开启组件扫描
<?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("添加用户");
    }

}
最近更新