Spring注解中@Configuration、@Component、@Bean傻傻分不清
前言
嗨,大家好,我是希留。
近日,公司里一位实习的同事在看项目代码时发现有的类使用的是@Configuration注解,有的类使用的是@Component注解,有的地方使用的是@Bean注解,有的又是使用的@Autowire注解,这些不都是注册成bean组件的注解吗,有什么区别呢?
所以这篇文章就来盘点一下,spring中常用的注解,以及区别。
一、将一个类声明为 Spring 的 bean 的注解有哪些?
-
@Component :通用的注解,可标注任意类为 Spring 的组件。如果一个 Bean 不知道属于哪个层,可以使用 @Component 注解标注。
-
@Configuration :声明该类为一个配置类,可以在此类中声明一个或多个 @Bean 方法。
-
@Controller :对应 Spring MVC 控制层,主要用来接受用户请求并调用 Service 层返回数据给前端页面。
-
@Service :对应服务层,主要设计一些复杂的逻辑,需要用到 Dao 层。
-
@Repository :对应持久层即 Dao 层,主要用于数据库相关操作。