Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring配置课程安排最佳实践_Java_Spring_Spring Boot - Fatal编程技术网

Java Spring配置课程安排最佳实践

Java Spring配置课程安排最佳实践,java,spring,spring-boot,Java,Spring,Spring Boot,我使用配置类(带有@configuration注释的Java类)来配置我的bean。一般来说,我希望避免原型注释(如@Service和@Component)和组件扫描我的整个项目 在将配置类放在何处有什么最佳实践吗?我想到了不同的设置: 将配置类放在模块根级别的单独包中 您可以在SomeServiceConfiguration中注册SomeServicebean。我最大的问题是,您失去了使用可见性修改器的机会。为了构造bean,每个包中的每个类都必须是公共的,这在更大的项目中可能是一个真正的

我使用配置类(带有
@configuration
注释的Java类)来配置我的bean。一般来说,我希望避免原型注释(如
@Service
@Component
)和组件扫描我的整个项目

在将配置类放在何处有什么最佳实践吗?我想到了不同的设置:

  • 将配置类放在模块根级别的单独包中
您可以在
SomeServiceConfiguration
中注册
SomeService
bean。我最大的问题是,您失去了使用可见性修改器的机会。为了构造bean,每个包中的每个类都必须是公共的,这在更大的项目中可能是一个真正的麻烦。好处是我可以扫描
config
包来注册我的bean

  • 将配置类与要注册的类放在同一个包中
这允许您使用可见性修改器,但管理配置文件会变得很麻烦。您的配置文件现在在整个应用程序中乱七八糟,您将不得不投入更多的精力来管理它们。虽然我开始认为这可能是一个有利的方法

是否有社区更喜欢的方法?大型项目首选哪一种?哪一个比例最好?请注意,我不想使用原型注释

但是管理配置文件变得很麻烦。您的配置文件现在在整个应用程序中乱七八糟,您将不得不投入更多的精力来管理它们

不同意。如果您知道必须修改特定控制器bean的定义,那么您就知道在哪里查看-->
controller/config


这可能取决于你有多少豆子。。。您应该避免使用大量bean定义的大型类。。。因此,根据这一点,最好是拆分或不拆分…

组件扫描整个应用程序有什么问题?主要是应用程序启动速度较慢。这对于更大的项目来说是相当可观的。如果您关心自动缩放的应用程序启动速度,我建议查看
@ComponentScan(lazyInit=true)
@Lazy
。在开发过程中,您只需寻找注释来找出不同组件的位置,以及过度阅读初始化这些组件的过程代码,就可以节省大量时间。尤其是大型项目;)好吧,这个问题也源于这样一个事实,即在查找组件/配置类时,只需遍历每个类文件,而惰性bean初始化并不能解决这个问题。
- src
 - config
  - SomeServiceConfiguration.class
 - dao
 - controller
 - service
  - SomeService.class
- src
 - dao
 - controller
 - service
  - SomeService.class
  - SomeServiceConfiguration.class