了解Spring注释DI

时间:2009-12-15 02:36:50

标签: java spring dependency-injection

  

@Repository @Service @Controller   @Component

- >仅用于弹簧托管bean(无需编织)
- > @repository,@ Service @controller实际上是@Component,只是命名程序员更容易理解

@Configurable

--->用于非弹簧管理的bean(用于编织)

@Autowired

- >用于上述两种情况的DI

我的理解是否正确?

2 个答案:

答案 0 :(得分:2)

@Configurable以外的所有内容都是正确的。来自Spring javadocs:

  

public @interface可配置   将类标记为符合Spring驱动配置的条件。通常与AspectJ AnnotationBeanConfigurerAspect一起使用。

答案 1 :(得分:1)

Spring注释有不同的用途。如您所知,Spring大量使用代理来提供其功能。 但是这个功能取决于目标注释

所以当你把

@Repository
public class UserRepositoryImpl implements UserRepository {

    public void saveUser(User user) {
        // logic goes here
    }

}

你在说

  

Spring,代理我的UserRepositoryImpl并且如果它抛出任何数据库异常,捕获它并将其作为DataAccessException重新抛出,这是一个通用的Spring数据库异常

等等......

的问候,