Spring中JavaConfig优于XML配置的好处?
早些时候,配置在代码中是硬编码的,后来它被外部化到.property文件(为了避免硬编码值,为了更改配置而避免更改代码..等等),然后它移动到XML(为了更标准化,无错误..等等) 现在,在阅读Spring3中关于@Configuration的内容时,我们似乎又回到了最初的方法 为什么我们要在代码中硬编码配置,而不是 将其外部化Spring中JavaConfig优于XML配置的好处?,spring,annotations,spring-3,spring-annotations,Spring,Annotations,Spring 3,Spring Annotations,早些时候,配置在代码中是硬编码的,后来它被外部化到.property文件(为了避免硬编码值,为了更改配置而避免更改代码..等等),然后它移动到XML(为了更标准化,无错误..等等) 现在,在阅读Spring3中关于@Configuration的内容时,我们似乎又回到了最初的方法 为什么我们要在代码中硬编码配置,而不是 将其外部化 有一些优点 Java是类型安全的。如果您需要,编译器将报告问题 配置正确的bean类限定符 基于配置的XML可以迅速发展壮大。是的,我们可以分开 和进口,但仍然] 搜索
有一些优点
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:component-scan base-package="controller" />
<context:component-scan base-package="dao" />
<context:component-scan base-package="service" />
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
什么是容易理解的?显然,基于Java的配置很容易理解
编写代码的人和其他人比XML更容易理解java代码。如果您只了解Java,则不需要了解XML。这取决于Java类中加载的配置类型。就我们所见,将所有配置放在一个地方总是安全的。我们应该从更广阔的角度或更大的范围来思考一切。不构建应用程序,我们可以使应用程序在不同的环境中以不同的方式运行。@prashanth-g单片配置文件?大规模的?我认为这不算什么。想象一下,来自不同模块上的多个开发人员的多个配置更改。我宁愿在小的模块化配置文件中进行每个更改,而不是在一个地方进行更改。@jonasespelita,这是一个多集群环境中的单片应用程序。在这个设置中,我们认为在XML文件中具有某些配置(如IP、URL等)将是一个更好的解决方案。但这取决于你的需求和环境。进一步检查@prashanth-g猜测最初的问题是关于Java配置的优势。这不是一个比另一个更好的问题。由于两者都受支持,您可以做出选择。我们还在做单片石吗?gr8例子。但是不同环境的配置又如何呢。这是编译后不可能的,这是一个主要的缺点基于java的配置是无用的,spring的主要优点是与java的解耦,因此您可以在不重新编译或重建的情况下更改配置
@Configuration
@EnableWebMvc
@ComponentScans({
@ComponentScan("controller"),
@ComponentScan("dao"),
@ComponentScan("service")
})
public class WebMVCConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/pages/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}