Java maven配置文件还是弹簧配置文件?
许多java应用程序都是用maven构建的。maven有概要文件的概念,为不同的环境构建发布包非常方便。e、 g.Java maven配置文件还是弹簧配置文件?,java,spring,maven,deployment,Java,Spring,Maven,Deployment,许多java应用程序都是用maven构建的。maven有概要文件的概念,为不同的环境构建发布包非常方便。e、 g.dev/test/prod使用不同的path/jndiname/security rule/properties文件。。。我想我不必在这里列出代码来解释它 Spring是一个非常好而且流行的java开发框架,因为spring3也支持概要文件的概念 现在问题来了,对于释放到不同的环境目的,哪一个更好?现在我更喜欢maven的个人资料。因为spring必须复制每个概要文件中的每个bean
dev/test/prod
使用不同的path/jndiname/security rule/properties文件
。。。我想我不必在这里列出代码来解释它
Spring是一个非常好而且流行的java开发框架,因为spring3也支持概要文件的概念
现在问题来了,对于释放到不同的环境目的,哪一个更好?现在我更喜欢maven的个人资料。因为spring必须复制每个概要文件中的每个bean定义。它需要一个初始值设定项/属性来让spring知道应该激活哪个概要文件
但我觉得spring配置文件比maven配置文件更灵活
你觉得怎么样?请给我一些建议。谢谢。如果您需要不同的工件,请使用maven。如果它只是一个真正的配置,可以在构建人工制品后进行配置,那么用户Spring配置文件。我认为这取决于您的需求。如果根据环境(如jdbc驱动程序等)有不同的依赖项,则需要使用maven来解决这个问题
如果只是配置部署的问题,您可能最好使用spring。Maven概要文件将提供构建时解决方案,而SpringFramework概要文件将提供运行时替代方案。我认为这是人们可能会问自己的第一个问题:他是否想要一个可以部署在不同环境中的包,或者他是否想要构建工具根据目标环境提供不同的包
需要记住的一件事是,如果将不同的包部署到不同的服务器中,可能会出现许多问题。例如,在我的工作场所,如果我正在部署一个程序包来纠正以前在生产环境中出现的错误,公司的政策会规定,唯一可以接受的情况是,我在QA和生产服务器中拥有相同的解决方案包。如其他回复中所述:这一切取决于您的工作方式:) 在过去几年中,我们使用maven和现在的spring 3.1概要文件得出的结论如下:
- 我们使用maven发布插件来减少发布。如果我们使用maven概要文件,这会导致环境问题,因为我们需要重建版本或至少每个maven概要文件的标签
- 因此,我们为所有环境创建on.war文件,并使用spring
来设置应用程序(或一些JNDI资源,具体取决于客户)。这只允许运行一个maven版本PropertyPlaceHolderConfigure
- 当环境也不同时,spring配置文件就会出现。例如,并非所有环境都提供身份验证服务。在这里,我们将该服务存根并将其放入spring概要文件中。我们在属性中激活弹簧配置文件,该属性由我们无论如何使用的
读取PropertyPlaceHolderConfigure
但这可能会有所帮助。我碰巧使用了properties maven plugin来设置系统属性,具体取决于激活的maven配置文件。然后在Spring中,我以编程方式激活了我想要的概要文件,具体取决于该系统属性: 字符串activeProfile=System.getProperty(“myapp.profile”) appContext.getEnvironment().setActiveProfiles(..) 此外,当我想直接链接两种配置文件(maven/spring)时,我通过maven插件设置spring.profiles.active属性 这些实践在设计中可能是错误的,但它们解决了我的问题