首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Component-Scan和@Component之间的区别?

Component-Scan和@Component之间的区别?
EN

Stack Overflow用户
提问于 2018-05-28 10:58:50
回答 2查看 10.2K关注 0票数 1

我对这些注解有些困惑,因为我是Spring的新手。我试图在谷歌上找到它,找到了很多答案,但我仍然不明白。我知道@Component是@Repository,@Service和@Controller的超级注解,但是我仍然不确定什么时候使用@ComponentScan,什么时候使用@ComponentScan可以帮助我清楚地理解这两个注解,以及它们的区别是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-28 12:35:45

使用注解@ComponentScan,您可以告诉Spring您的Spring管理的组件位于何处。这些Spring管理的组件可以使用@Repository、@Service、@Controller和@Component进行注释。

例如,假设您的spring管理的组件位于2个包com.example.test1和com.example.test2中。那么你的componentScan应该是这样的

代码语言:javascript
复制
                @ComponentScan(basePackages="com.example.test1","com.example.test2")

注释ComponentScan还有很多其他元素。

你可以在这里阅读更多关于它们的信息- https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/ComponentScan.html

另一方面,@Component是任何Spring管理的组件的通用注释。例如,如果您在com.example.test1包中创建了一个名为Testing的类,并使用Spring @Component进行注释。

代码语言:javascript
复制
             @Component    
             Class Testing    
     {

             public Testing()
            {
            }

            public void doSomething()
           {
            System.out.println("do something");
           }

    }

按照上面的示例,在组件扫描期间,它将被拾取并添加到应用程序上下文中。

希望这能让事情变得更清楚:)

票数 5
EN

Stack Overflow用户

发布于 2018-05-28 12:41:12

简单地说,@ComponentScan扫描在基包下指定的所有类文件,即在这个包下的文件中搜索任何带有@Component、@Repository、@Service和@Controller的注释java文件,如果找到它们中的任何一个,它会将其注册到bean工厂中。

在XML文件中编写所有内容是一件很痛苦的事情,你必须指定每个类是什么,如果它是一个服务或控制器,那么注释就出现在图片中,以避免this...Internally它做的事情就像你写了一个xml文件,其中提到了什么是什么

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50558563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档