将@Configuration bean放在一个Spring项目中的“最佳实践”位置在哪里? 1}}下配置配置似乎是错误的,但是其他类不会被编译。
其他人如何解决这个问题?
答案 0 :(得分:2)
/src/main/java
是maven项目中java源代码的根文件夹。
所以这是正确的根文件夹。
但最好在java项目中使用包。 - 包映射到目录。
因此,最好的做法是拥有像com.my_domain.my_application.service
这样的软件包
这将对应于文件夹/src/main/java/com/my_domain/my_application/service
@Configuration
带注释的类是java类,因此必须编译它们。
在默认的mavern项目中,只有/src/main/java
和/src/test/java
中的文件。如果你想分开@Configuration
类,那么这是可能的,但不能在src/xxx/resource
文件夹中。
您唯一需要做的就是在maven build helper plugin的帮助下在maven中对其他源代码进行decalare。
<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源文件夹/src/main/javaconfig
,你可以在其中放置@Configuration
个文件。在编译之前,此文件夹中的内容将与/src/main/java
中的内容合并。 (将此添加到pom之后,您需要指示eclipse更新项目配置)。
答案 1 :(得分:2)
似乎唯一的解决方案是,如果要将配置与逻辑分离,可以在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
中,而在项目源代码树中,这些将被放置在其他位置。