将@Configuration bean放在Spring项目中的'最佳实践'地方在哪里?这似乎是错误的配置下/src/main/java
,但否则类将不会被编译。Spring @Configuration Beans - '最佳'地点?
其他人如何解决这个问题?
将@Configuration bean放在Spring项目中的'最佳实践'地方在哪里?这似乎是错误的配置下/src/main/java
,但否则类将不会被编译。Spring @Configuration Beans - '最佳'地点?
其他人如何解决这个问题?
看来,唯一的解决办法,如果你想从逻辑中分离出的配置,是额外的源文件夹添加到Maven的配置:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/configuration</source>
...
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
看来,这个解决方案将实现你想要的。 src/main/configuration
将被添加到编译插件中,并将在target/classes
中结束,而在项目源代码树中,这些将被放置在其他位置。
/src/main/java
是maven项目中java源码的根文件夹。 所以它是正确的根文件夹。
但是最好的做法是在java项目中使用包。 - 包被映射到目录。
所以这是很常见的一个最佳实践有一定的包像com.my_domain.my_application.service
,这将对应的文件夹/src/main/java/com/my_domain/my_application/service
@Configuration
注释类是Java类,并therfore他们必须进行编译。 在默认的mavern项目中,只有/src/main/java
和/src/test/java
中的文件。如果要分开@Configuration
类,则可以这样做,但不能在src/xxx/resource
文件夹中。
你需要做的唯一的事情就是在maven build helper plugin的帮助下在maven中绘制一个额外的源代码direcory。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<source>add-source</source>
</goals>
<configuration>
<sources>
<source>${basedir}/src/main/javaconfig</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
现在你哈瓦一个额外的java源文件夹,你可以把你@Configuration
文件。在编译之前,此文件夹中的内容与/src/main/java
合并。 (添加到pom后,你需要指示eclipse来更新项目配置)。
感谢您的回答,我想知道关于@Configuration bean的具体信息,通常我会希望配置资源位于src/main /资源“,但作为@Configuration bean需要最终编译类,这是行不通的。是否有一个普遍接受的地方把需要编译的配置元素? – 2012-02-16 09:00:53
@Deejay:现在我明白了这个问题,有看看我的扩展答案。 – Ralph 2012-02-16 09:48:58
为什么它错了?这些只是最终的类... – 2012-02-15 16:21:30
他们是,但他们是配置,而不是我认为应用程序适当。也许我只是对他们应该属于的地方有一个歪曲的看法! – 2012-02-16 09:01:29
(+1)@TheOter读者:“看到我的答案下面的第一条评论,然后你会明白这个问题:CITE”我想知道具体关于@Configuration bean的信息。通常情况下,我希望配置资源位于src/main/resources中,但由于“@ Configuration”bean需要以编译类结束,所以这不起作用。 “ – Ralph 2012-02-16 09:51:13