autowired如何根据类名注入

avatar
作者
筋斗云
阅读量:9

@Autowired注解是Spring框架中用来自动装配Bean的注解,它有多种用法,其中之一就是根据类名注入。

在使用@Autowired注解时,如果没有指定具体的Bean名称,Spring会根据变量的类型来进行自动装配。当有多个符合类型的Bean时,Spring会优先选择与变量名相同的Bean进行注入。如果找不到与变量名相同的Bean,则会选择与变量类型相同的Bean进行注入。

以下是一个示例:

@Service public class UserService {     @Autowired     private UserDao userDao; }  @Repository public class UserDao {     // ... } 

在上面的示例中,UserService类中的userDao字段使用了@Autowired注解进行自动装配。由于变量名与Bean名称不同,Spring会根据变量类型进行注入,因此会将UserDao类型的Bean注入到userDao字段中。

需要注意的是,如果有多个与变量类型相同的Bean,Spring会抛出异常,表示无法确定应该注入哪个Bean。此时可以通过使用@Qualifier注解来指定具体的Bean名称。

@Service public class UserService {     @Autowired     @Qualifier("userDaoImpl")     private UserDao userDao; }  @Repository("userDaoImpl") public class UserDaoImpl implements UserDao {     // ... }  @Repository("userDaoDummy") public class UserDaoDummy implements UserDao {     // ... } 

在上面的示例中,通过@Qualifier注解指定了要注入的Bean名称为"userDaoImpl",这样就可以确保将UserDaoImpl类型的Bean注入到userDao字段中。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!