Spring------自动化装配Bean(一)
一、创建 CompactDisc接口和SgetPeppers实现类
CompactDisc接口方法为播放。SgtPeppers实现CompactDisc接口。
1 package soundsystem; 2 3 public interface CompactDisc { 4 void play(); 5 6 }
1 package soundsystem; 2 3 import org.springframework.stereotype.Component; 4 //component为spring中bean扫描标识 5 @Component 6 public class SgtPeppers implements CompactDisc { 7 8 private String title = "歌德"; 9 private String artist = "gede"; 10 11 public void play() { 12 System.out.println("Playing " + title + " by " + artist); 13 } 14 15 }
二、启用spring组件扫描
1、通过java配置启用
添加 @Configuration @ComponentScan 两个注解即可。
【注】使用ComponentScan时,若配置文件和bean在同一个包,省略基础包备注也可以。
1 package soundsystem; 2 import org.springframework.context.annotation.ComponentScan; 3 import org.springframework.context.annotation.Configuration; 4 5 @Configuration 6 @ComponentScan("soundsystem") 7 public class JavaConfig { 8 9 }
2、通过xml配置启用:<context:component-scan base-package="soundsystem"></context:component-scan> 如果没有自动提示或者报错,在namespace中添加context配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"><context:component-scan base-package="soundsystem"></context:component-scan></beans>
三、编写测试类,并运行
1、创建test包,分别通过java配置和xnl配置实现测试
java配置为:AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(soundsystem.JavaConfig.class);
xml配置为:ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
1 package test; 2 3 import org.springframework.context.annotation.AnnotationConfigApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 import soundsystem.CompactDisc; 6 import soundsystem.SgtPeppers; 7 8 public class Test { 9 public static void main(String[] args) { 10 //基于java类中配置上下文 11 //AnnotationConfigApplicationContext context = 12 new AnnotationConfigApplicationContext(soundsystem.JavaConfig.class); 13 //基于xml配置上下文 14 ClassPathXmlApplicationContext context = 15 new ClassPathXmlApplicationContext("applicationContext.xml"); 16 17 CompactDisc cd=context.getBean(SgtPeppers.class); 18 cd.play(); 19 } 20 }
四、补充说明
1、spring中设置bean的id有两种方式,一是用户给出,二是系统自己生成默认id(默认将类名首字母变成小写作为bean的id)。
用户常用指定id方法为:
@Component("id")//也可以使用named属性@Named(“id”)
2、关于组件扫描的基础包,上面提到部分,指定单个基础包,当有多个基础包需要扫描时使用basePackages属性。
1 @ComponentScan(basePackages={"soundsystem","test"})
3、添加@Autowired注解实现自动装配。添加接口MediaPlayer和实现类CDPlayer。修改Test测试类
1 package soundsystem; 2 public interface MediaPlayer { 3 void play(); 4 5 }
package soundsystem;import org.springframework.beans.factory.annotation.Autowired;public class CDPlayer implements MediaPlayer {private CompactDisc cd;@Autowiredpublic CDPlayer(CompactDisc cd) {this.cd = cd;}public void play() {cd.play();} }
1 public class Test { 2 public static void main(String[] args) { 3 //基于java类中配置上下文 4 //AnnotationConfigApplicationContext context = 5 new AnnotationConfigApplicationContext(soundsystem.JavaConfig.class); 6 //基于xml配置上下文 7 ClassPathXmlApplicationContext context = 8 new ClassPathXmlApplicationContext("applicationContext.xml"); 9 CompactDisc cd=context.getBean(SgtPeppers.class); 10 cd.play(); 11 MediaPlayer player=context.getBean(CDPlayer.class); 12 player.play(); 13 14 } 15 }
4、备注CDPlayer重写构造方法,通过Autowired自动添加构造方法CD对象,调用CD播放。
转载于:https://www.cnblogs.com/gede/p/10889762.html
Spring------自动化装配Bean(一)相关推荐
- Spring 自动化装配Bean
声明一张cd的接口: public interface CompactDisc {public abstract void play(); } 实现cd接口: @Component("Sgt ...
- Spring之装配Bean(一)
Spring中装配bean的三种主要方式 1.隐式的bean发现机制和自动化装配 组件扫描( component scanning) : Spring会自动发现应用上下文中所创建的bean. 自动装配 ...
- spring(2)装配Bean
[0]README 0)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review spring(2)装配Bean 的相关知识: 1)在sprin ...
- 第2章—装配Bean—自动化装配Bean
自动化装配Bean 2.1.Spring配置可选方案 装配是依赖注入DI的本质,Spring提供了以下三种注入的装配机制: 在XMl中进行显式配置 在java中进行显式配置 隐式的Bean发现机制 ...
- Spring笔记——装配Bean
1.Spring配置的可选方案 在XML中进行显式配置. Java中进行显式配置. 隐式的bean发现机制和自动装配. 2.自动化装配bean Spring从两个角度来实现自动化装配: 组件扫描(co ...
- Spring学习系列(二) 自动化装配Bean
一.Spring装配-自动化装配 @Component和@ComponentScan 通过spring注解(@Component)来表明该类会作为组件类,并告知Spring要为这类创建bean,不过组 ...
- Spring入门(二):自动化装配bean
Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中需要创建的bean. 自动装配(autowiring):Spring会自动 ...
- Spring Bean之JavaConfig自动化装配bean
一.简介: Spring能够进行自动化的装配,它使用两种方式来进行自动化装配: 1.组件扫描: Spring会自动发现应用上下文中所创建的bean 2.自动装配: Spring会自动满 ...
- Spring学习之Spring三种装配机制:(一)自动化装配bean
装配:创建应用组件(对象)之间的协作的行为,这也是Spring依赖注入(DI)的本质. Spring提供了三种装配机制: 隐式的自动装配bean: 通过java代码装配bean(显示): 通XML中装 ...
- Spring实战01——自动化装配bean
自动装配bean 的四种方式: 首先定义一个类,使用@Configuration 标注类成为配置类,然后有下面四种方式: 1.配置类使用@ComponentScan 注解扫描指定包下的类,默认是扫描同 ...
最新文章
- Java 依赖注入标准(JSR-330)简介
- LCP 01. Guess Numbers 猜数字
- 监听以太网(四) Packet32函数SDK
- PHP 分布式集群中session共享问题以及session有效期的设置
- leetcode 530. 二叉搜索树的最小绝对差(中序遍历)
- ML、DL、CNN学习记录2
- 爬虫笔记(十)——学会使用Fiddler
- 支持下一代分布式应用链开发的区块链服务互联网
- discuz 模板php代码,自定义HTML模板DIY支持PHP代码解析
- 如何制作拼图?教你三步快速拼接图片
- Matlab/Simulink 自动代码生成 基于模型设计学习教程(1)---- 环境配置
- 共阴数码管显示0~9的数字
- 用python画靶盘九个_““python程序设计:画一个射箭运动所用的箭靶.从小到大分别黄,红,蓝,黑,白色的同...
- 系统调用【简单总结】
- 基于 Windows系统的 KingbaseES 数据库软件安装指南(3. 安装前准备工作)
- 数据库系统概论--第六章 关系数据理论
- android 开发过程中涉及到的清除缓存操作
- xcode/osx官方直接下载地址(离线下载)
- php代码加密tp5,TP5.1写接口用来加密解密的方法
- c语言程序学生籍贯信息记录,c语言程序学生籍贯信息记录簿设计.doc
热门文章
- linkedin上看到的CRM团队信息
- SAP Gigya里类似Netweaver里SAP_ALL的权限
- SAP CRM my task 6个roundtrip的原理讲解
- CFX计算报错和相应解决办法(浮点错误等-持续更新)
- c远程连接mysql数据库_MySQL数据库远程连接开启方法
- java 输入流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序
- flex java red5_使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤
- Hive中实现有序,有序concat拼接,有序集合,hive方法操作命令,与自带方法列表
- python三维数据转换成二维_5大Python可视化库到底选哪个好?一篇文章搞定从选库到教学...
- oracle重启监听报01106,oracle 监听重启