Java 理解Spring注释DI

Java 理解Spring注释DI,java,spring,dependency-injection,Java,Spring,Dependency Injection,@存储库@Service@Controller @组成部分 -->仅用于spring管理的bean(无需编织) -->@存储库,@Service@controller实际上是一个@组件,只是命名更容易让程序员理解 @Configurable --->用于非spring管理bean(与编织一起使用) -->用于上述两种情况的DI 我的理解正确吗?除了@Configurable之外,其他都是正确的。从Spring javadocs: 公共@接口可配置 将类标记为符合Spring驱动配置的条件。通常

@存储库@Service@Controller @组成部分

-->仅用于spring管理的bean(无需编织)
-->@存储库,@Service@controller实际上是一个@组件,只是命名更容易让程序员理解

@Configurable
--->用于非spring管理bean(与编织一起使用)

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


我的理解正确吗?

除了@Configurable之外,其他都是正确的。从Spring javadocs:

公共@接口可配置 将类标记为符合Spring驱动配置的条件。通常与AspectJ注释BeanConfigureSpect一起使用


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

所以当你把

@Repository
public class UserRepositoryImpl implements UserRepository {

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

}
你是说

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

等等

问候,

@Repository
public class UserRepositoryImpl implements UserRepository {

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

}