@Component
注解作用于类,而 @Bean
注解作用于方法,和想将第三方的类变成组件时
-
@Component
:通用的注解,可标注任意类为 Spring 的组件。如果一个 Bean 不知道属于哪个层,可以使用@Component
注解标注。 -
@Repository/@Mapper
:对应持久层即 Dao 层,编写数据库相关操作。 -
@Service
:对应服务层,在Dao 层基础上进行复杂逻辑设计。 -
@Controller
:对应 Spring MVC 控制层,接受前端用户请求,调用 Service 层处理后返回数据给前端页面。 -
@Configuration
:声明该类为一个配置类,可以在此类中声明一个或多个@Bean
方法。
简而言之,@Service @Controller @Repository @Component ,这四个功能一样,区分开可以提升代码的可读性,仅此而已。
@ComponentScan用于类或接口上主要是指定扫描路径,spring会把指定路径下带有指定注解的类自动装配到bean容器里。会被自动装配的注解包括@Controller、@Service、@Component、@Repository等。