spring 装配 Bean

本贴最后更新于 2835 天前,其中的信息可能已经时移世易

Sping 容器负责创建应用程序中的 bean 并通过 DI 来协调这些对象之间的关系。Spring 具有非常大的灵活性,他提供了三种主要的装配机制

  • 在 XMl 中显示配置
  • 在 java 中显示配置
  • 隐式的 bean 发现机制和自动装配

自动装配 bean

Spring 从两个角度来实现自动装配

  • 组件扫描
  • 自动装配

创建可被发现的 bean

以 CD 播放机为例子

  • 首先定义一个接口,并不需要关注他的内容,它定义了 CD 播放机的一系列操作。

    public interface CompactDisc {
    	public void play();
    }
    
  • 实现这个接口

    @Component
    public class SgtPeppers implements CompactDisc {
    	private String title = "Sgt. Pepper's Lonely Hearts Club Band";
    	private String artist = "The Beatles";
    
    	public void play() {
    		System.out.println("Playing " + title + " by " + artist);
    	}
    }
    

这个类的重点是 @Component 注解,这个注解标志该类会作为组件类,并且需要 Spring 为他创建 Bean。

  • 创建配置类,开启默认扫描

    @Configuration
    @ComponentScan
    public class CDPlayerConfig {
    }
    

    @ComponentScan 注解启用了组件扫描,它会默认扫描与配置类相同的包。

测试

  • 新建一个测试类。

    	  @RunWith(SpringJUnit4ClassRunner.class)
    	  @ContextConfiguration(classes=CDPlayerConfig.class)
    	  public class CDPlayerTest {
    		  @Autowired
    		  private CompactDisc cd;
    		  @Test
    		  public void cdShouldNotBeNull() {
    			Assert.notNull(cd);
    		  }
    	  }
    

    SpringJUnit4ClassRunner 是为了在测试展开的时候加载 Spring 上下文。
    @ContextConfiguration 注解告知在 CDPlayerConfig 类中加载配置。因为该类中包含 @ComponentScan 注解,最终会生成一个 CompactDisc 的 Bean。
    @Autowired 将 Bean 注入到代码中,然后断言它非 Null。
    完整例子

Java 装配 Bean

要使用 Java 装配 Bean,需要编写一个方法,这个方法会创建所需类型的实例,

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 17 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...