📌  相关文章
📜  spring org.springframework.stereotype 不可见 - Java (1)

📅  最后修改于: 2023-12-03 15:35:03.524000             🧑  作者: Mango

Spring中的注解 @Component、@Controller、@Service 和 @Repository

在Spring中,@Component、@Controller、@Service 和 @Repository 是四个相似的注解,它们都用于标注实现类,表明该类可以被Spring自动扫描并装配到容器中。

@Component

@Component 是最基本的注解,用于标注普通的Java类,表明该类可以被Spring扫描并自动装配到容器中。当Spring扫描到该注解时,会将该类作为组件自动注册到Spring容器中,被注册的组件默认使用该类名称第一个字母小写的简单类名(即默认bean名称为类名首字母小写)。

@Component
public class UserServiceImpl implements UserService{
    //...
}
@Controller

@Controller 注解用于标注Controller层(即表现层)的实现类,表示该类是处理请求的控制器,能够接收请求参数并返回响应结果。被标注的类会自动注册到Spring的容器中,成为一个Bean。这样Spring就可以根据业务需求,通过自动的配置为Controller提供各种不同的注入方式。

@Controller
public class UserController {
    //...
}
@Service

@Service 注解用于标注Service层(即业务逻辑层)的实现类,表示该类是业务逻辑组件,用于处理具体的业务操作。通过该注解,Spring就可以根据业务逻辑需要,注入相应的Bean依赖。如果没有指定bean名称则默认使用该类名称第一个字母小写的简单类名作为bean名称。

@Service
public class UserServiceImpl implements UserService{
    //...
}
@Repository

@Repository 注解用于标记具有资源库功能的类,它用于将数据访问层(DAO)的实现标识为Spring容器中的Bean。这个注解是Spring基本注解的一部分,它还提供了由Spring管理数据库访问异常的简便方式。如果没有指定bean名称则默认使用该类名称第一个字母小写的简单类名作为bean名称。

@Repository
public class UserDaoImpl implements UserDao{
    //...
}

通过对@Component、@Controller、@Service 和 @Repository 的使用,我们可以将不同的类标记为Spring容器中的Bean。这样,我们就可以通过注解的方式让Spring简化应用程序的配置、管理和维护,从而提高应用的可维护性和可扩展性。