问题描述
大家好: 在spring的application的配置文件中有一些对包中的注解进行扫描范围的设定,比如:扫描spring的注解<context:component-scan base-package="这里可以设定需要扫描的路径1" />再比如,扫描dwr的注解:引用
解决方案
“指定到具体目录的方式”可以让开发者自己选择哪些才纳入管理,如果开发者引入了第三方jar,而这个jar中也用了注解,开发者不希望这个jar被注解的纳入管理,那就很有用了。Spring是为了满足各种开发者的需要,而不是那么死板的。
解决方案二:
引用困惑之处:既然设置了【com】就可以扫描整个项目,不用管理action的具体路径,暴露的dwr类的具体路径,那么spring何必将其做成可以指定到具体目录的方式?用意何在?(难道指定整个项目的跟路径运行效率更低下?)首先,annotation能够帮助我么减少xml配置文件的数量,有时候一个工程海量的xml让人非常头疼(其实这个有利有弊,我觉得annotation减少了bean之见的关联,让程序员在维护代码的时候,会感觉到不连续)对于你的问题其一,我们在使用annotations-scan的时候,不是scan根目录的。这是因为test的原因。好比说我们需要对datasource进行测试@Runwith(Junit4SpringUnitxxx.class)@Configuration(localtions={applicationDatasource.xml})public Demo { @Autowired Datasource datasource; @Test public void getConection_Accuracy() { // ..... }}这个时候,我们不需要把所有的spring配置文件都加载进来。我们有用的是annotation的方式,所以scan的路径要指定的好一些其二,有时候我们须要做到,在runtime的时候扫描annotation,这是hotswap要用的,我们需要有个东西能够自动注册spring的bean,这就是annotaions-scan上面都是我的经验之谈