Spring装配之——JAVA代码装配Bean

首先创建几个普通的JAVA对象,用于测试JAVA代码装配bean的功能。

1 package soundsystemJava;
2
3 //作为接口 定义了CD播放器对一盘CD所能进行的操作
4 public interface CD {
5     void play();
6 }

 1 package soundsystemJava;
 2 //接口的一个实现
 3 public class CDTest1 implements CD {
 4
 5     private String title = "十一月的肖邦";
 6     private String artist = "JayZhou";
 7
 8     public void play() {
 9         System.out.println("正在播放:" + title + ",由" + artist + "演唱");
10     }
11 }

 1 package soundsystemJava;
 2 //播放CD
 3 public class CDPlayer {
 4     private CD cd;
 5     public CDPlayer(CD cd) {
 6         this.cd = cd;
 7     }
 8
 9     public void play() {
10         cd.play();
11     }
12 }

准备工作做好之后,我们现在利用JAVA代码来装配bean:

 1 package soundsystemJava;
 2
 3 import org.springframework.context.annotation.Bean;
 4 import org.springframework.context.annotation.Configuration;
 5
 6 @Configuration
 7 public class CDPlayerConfig {
 8     //@Bean 注解会告诉Spring这个方法将会返回一个对象
 9     //方法体中可包含最终产生bea实例的逻辑
10     //默认情况下,bean的ID与方法名一样
11     //@Bean(name="....")指定其他的名字
12     @Bean
13     public CD cdTest1() {
14         return new CDTest1();
15     }
16
17     //注入方式之一
18     /*@Bean
19     public CDPlayer cdPlayer() {
20         return new CDPlayer(cdTest1());
21     }*/
22
23     //注入方式之二  通常是引用其他bean的最佳选择
24     @Bean
25     public CDPlayer cdPlayer(CD cd) {
26         return new CDPlayer(cd);
27     }
28 }

进行简单的JUnit测试:

 1 package soundsystemJava;
 2
 3 import static org.junit.Assert.*;
 4
 5 import org.junit.Test;
 6 import org.junit.runner.RunWith;
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.test.context.ContextConfiguration;
 9 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
10
11 //用于在测试开始时自动创建Spring上下文
12 @RunWith(SpringJUnit4ClassRunner.class)
13 //告诉上下文需要在CDPlayerConfig中加载配置
14 @ContextConfiguration(classes = { CDPlayerConfig.class })
15 public class CDPlayerTest {
16     //自动装配
17     @Autowired
18     private CDPlayer player;
19
20     @Autowired
21     private CD cd;
22
23     @Test
24     public void cdShoildNotBeNull() {
25         assertNotNull(cd);
26     }
27
28     @Test
29     public void play() {
30         player.play();
31     }
32 }

测试结果:

正在播放:十一月的肖邦,由JayZhou演唱

通过测试,装配成功。

原文地址:https://www.cnblogs.com/ustc-anmin/p/10138781.html

时间: 2024-10-09 17:22:42

Spring装配之——JAVA代码装配Bean的相关文章

Spring Boot 使用Java代码创建Bean并注册到Spring中

从 Spring3.0 开始,增加了一种新的途经来配置Bean Definition,这就是通过 Java Code 配置 Bean Definition. 与Xml和Annotation两种配置方式不同点在于: 前两种Xml和Annotation的配置方式为预定义方式,即开发人员通过 XML 文件或者 Annotation 预定义配置 bean 的各种属性后,启动 Spring 容器,Spring 容器会首先解析这些配置属性,生成对应都?Bean Definition,装入到 DefaultL

2.2、通过Java代码装配bean

通过Java代码装配bean 例如,需要将第三方库的组件加载到你的应用中,此时无法给他的类上添加@Component和@Autowired注解,此时不能使用自动化装配了. 这种情况下,就必须使用显式装配的形式,可以选择Java代码装配或Xml装配 建议:显式配置是优先使用JavaConfig装配,因为他强大.类型安全且对重构友好:因为他和业务代码无关,应放到单独的包中 @Configuration 告诉Spring,这是一个Spring配置类,用来配置Spring应用上下文如何配置bean @B

Spring装配bean--02通过Java代码装配bean

Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系 Spring提供了三种主要的装配机制: 在XML中进行显式配置 在Java中进行显式配置 隐式的bean发现机制和自动装配 2在Java中显式配置 尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化装配是更为推荐的方式,但是当你要将第三方库中的组件装配到你的应用中,这时就必须显式的配置bean 显式配置包括:Java和XML,我更推荐使用Java类配置,就像上文中的JavaConfig那样 JavaCon

Spring学习系列(三) 通过Java代码装配Bean

上面梳理了通过注解来隐式的完成了组件的扫描和自动装配,下面来学习下如何通过显式的配置的装配bean 二.通过Java类装配bean 在前面定义了HelloWorldConfig类,并使用@ComponentScan和@Configuration注解,@Configuration注解表明了这个类是一个java配置类,该类用在获取Spring应用上下文时,告诉Spring创建bean的细节,通过@ComponentScan,我们启用了Spring的自动组件扫描,现在就让我们来看如果通过java类来显

Sping实战之通过JAVA代码装配Bean

尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化配置是更为推荐的方式,但有时候自动化配置的方案行不通,因此需要明确配置Spring.比如说,你想要将第三方库中的组件装配到你的应用中,在这种情况下,是没有办法在它的类上添加@Component和@Autowired注解的,因此就不能使用自动化装配的方案了. 在这种情况下,你必须要采用显式装配的方式.在进行显式配置的时候,有两种可选方案:Java和XML.在这节中,我们将会学习如何使用Java配置,接下来的一节中将会继续学习Spring

通过Java代码装配Bean

上面梳理了通过注解来隐式的完成了组件的扫描和自动装配,下面来学习下如何通过显式的配置的装配bean 二.通过Java类装配bean 在前面定义了HelloWorldConfig类,并使用@ComponentScan和@Configuration注解,@Configuration注解表明了这个类是一个java配置类,该类用在获取Spring应用上下文时,告诉Spring创建bean的细节,通过@ComponentScan,我们启用了Spring的自动组件扫描,现在就让我们来看如果通过java类来显

使用Java代码和注解完成Spring配置

使用Java代码和注解完成Spring配置 使用Java代码和注解进行Spring的配置.个人理解: 使用Spring的时候可以使用XML文件配置,也可以使用Java代码配置.使用Java代码配置的时候,相当于使用Java类作为XML的配置文件,通过使用java代码创建bean实例,并通过java代码完成依赖的注入操作.当需要变更依赖注入时,可通过修改java代码实现. 使用注解配置的时候,个人理解存在两种方式第一种是注解+XML形式,第二种是Java代码+注解形式.使用Java+注解的形式,相

Spring笔记——3.容器中的Bean

开发者在Spring框架下只需要做两件事:开发bean,配置bean.所以我们要做到:眼中看的是xml,戏中想的是java类代码,因为Srping本质就是通过xml来驱动java代码,每段xml都对应一段java代码. bean的作用域 通过scope属性可以为bean设置如下作用域. singleton:永远都只有一个实例.默认的是单例.创建后架构会持续跟踪维护. prototype:每次get都是一个新的实例.new后就不管了. request:同一个request中得到的总是同一个,请求结

Spring 学习笔记(五)—— Bean之间的关系、作用域、自动装配

继承 Spring提供了配置信息的继承机制,可以通过为<bean>元素指定parent值重用已有的<bean>元素的配置信息. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XML