[英]package-info.java for Spring component scan
我需要为Spring组件自动扫描定义一个根包。
我不喜欢将包名称定义为非类型安全字符串的方法。 目前,我在程序包的根目录中放置了人工空的Scannable
标记接口,并以类型安全的方式在Spring @ComponentScan
批注中使用了它。
但是是否可以出于相同目的在@ComponentScan
批注中使用package-info.java
?
Java中没有语法可以允许您直接直接引用Package
对象,因此对问题的简短回答是no 。
您不能以保证您在编译时安全的方式使用package-info.java
来引用软件包。 您只能直接引用Class
对象,并通过该Class
对象获取其包。 而且您也不能将任何类放入package-info.java
中,因为名为package-info.java
java源文件应至少包含一个名为package-info
的类,但是也不行,因为1) -
是不允许作为Java标识符字符,并且2) package
是Java语言规范中Java中的保留关键字。
在这种情况下,使用占位符类或接口是正确的解决方案,它为您提供了在这种情况下可以实现的最大保证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.