javascript
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(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主键,外键认识理论
- 下一篇: java transient简单介绍