当前位置: 首页 > 知识库问答 >
问题:

Spring中xml配置优先于注释配置的示例

司马英才
2023-03-14

但没有任何例子。

你能举个例子吗?

共有1个答案

邵星河
2023-03-14

下面是一个简单的示例,展示了基于xml的Spring配置和基于Java的Spring配置的混合。示例中有5个文件:

Main.java
AppConfig.java
applicationContext.xml
HelloWorld.java
HelloUniverse.java

首先尝试在applicationContext文件中注释了HelloBeanbean的情况下运行它,您将注意到HelloBeanbean是从AppConfig配置类实例化的。然后在applicationContext.xml文件中未注释HelloBeanbean的情况下运行它,您将注意到xml定义的bean优先于AppConfig类中定义的bean。


main.java

package my.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

   public static void main(String[] args) {
      ApplicationContext ctx = new AnnotationConfigApplicationContext( AppConfig.class );
      ctx.getBean("helloBean"); 
   }
}
package my.test;
import org.springframework.context.annotation.*;

@ImportResource({"my/test/applicationContext.xml"})
public class AppConfig {

   @Bean(name="helloBean")
   public Object hello() {
      return new HelloWorld();
   }
}


applicationcontext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <bean id="helloBean" class="my.test.HelloUniverse"/>

</beans>


hellouniverse.java

package my.test;

public class HelloUniverse {

   public HelloUniverse() {
      System.out.println("Hello Universe!!!");
   }
}


helloworld.java

package my.test;

public class HelloWorld {

   public HelloWorld() {
      System.out.println("Hello World!!!");
   }
}
 类似资料:
  • 问题内容: 在最近我从事的一些大型项目中,选择其中一种(XML或注释)似乎变得越来越重要。随着项目的发展,一致性对于可维护性非常重要。 我的问题是:与基于注释的配置相比,基于XML的配置有哪些优势?与基于XML的配置相比,基于注释的配置有哪些优势? 问题答案: 注释有其用途,但它们不是杀死XML配置的灵丹妙药。我建议将两者混合! 例如,如果使用Spring,则将XML用于应用程序的依赖注入部分是完

  • 问题内容: 最近,在我们的团队中,我们开始讨论在代码中使用spring注释来定义spring依赖关系。当前,我们正在使用context.xml定义依赖项。您能给我一些关于这两种方法的线索吗?何时更好地使用? 编辑:我知道这似乎是对更一般的问题的重复问题,但是我对仅依赖注入的注解和配置的影响感兴趣,我相信与一般问题相比,注解和配置的影响会有所不同。 问题答案: 在阅读了此处的一些相关文章并在团队中进

  • 我是Spring的新手,尝试将基于xml的配置转换为注释basic。我读了这个教程。它与基于xml的配置完美结合。MVCSpring积垢教程 现在我将所有基于xml的配置转换为注释,但我有一个问题。我几乎把我读到的东西都读了一遍,但我没有解决这个问题。 组织。springframework。豆。工厂BeanCreationException:创建名为“personController”的bean时

  • 下面是当前的web.xml片段: 我非常感谢你的帮助。

  • 问题内容: 以前的配置以前是用代码硬编码的,后来它被外部化为.property文件(以避免硬编码的值,避免为了更改配置而更改代码等),然后将其移至XML(用于为了更标准化,没有错误..等) 现在,在阅读Spring 3中的@Configuration时,似乎我们再次回到了最初的方法。 为什么我们要对代码中的配置进行硬编码而不是将其外部化? 问题答案: 有一些优点 Java是类型安全的。如果你正在配

  • 我正在做一个新的项目,第一次使用Spring-Boot。 传统上,在使用Spring和属性文件进行配置时,我在发行版(WAR)中提供了默认属性,并允许在某个文档位置重写它们。 例如: 这将允许我们在不丢失本地系统配置的情况下重新部署应用程序。 我喜欢Spring,因为它允许我们遵守惯例,这让我担心我可能做错了属性级联。 什么是提供包含在发行版中的外部化属性的最合适的方法,该属性具有合理的默认值(嵌