自动化装配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.xsd
        http://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 }

原文地址:https://www.cnblogs.com/gede/p/10889762.html

时间: 2024-10-17 09:03:44

自动化装配Bean(一)的相关文章

Spring 之自动化装配 bean 尝试

[Spring之自动化装配bean尝试] 1.添加dependencies如下所示(不是每一个都用得到 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.9.RELEASE</version> </dependency

Spring学习系列(二) 自动化装配Bean

一.Spring装配-自动化装配 @Component和@ComponentScan 通过spring注解(@Component)来表明该类会作为组件类,并告知Spring要为这类创建bean,不过组件扫描默认是不启动的,需要显式的配置Spring,从而命令Spring去寻找带有(@Component)注解的类,并为其创建bean. 1.定义接口 package com.seven.springTest.service; public interface HelloWorldApi { publ

自动化装配Bean

一.Spring装配-自动化装配 @Component和@ComponentScan 通过spring注解(@Component)来表明该类会作为组件类,并告知Spring要为这类创建bean,不过组件扫描默认是不启动的,需要显式的配置Spring,从而命令Spring去寻找带有(@Component)注解的类,并为其创建bean. 1.定义接口 package com.seven.springTest.service; public interface HelloWorldApi { publ

Spring入门(二):自动化装配bean

Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中需要创建的bean. 自动装配(autowiring):Spring会自动满足bean之间的依赖. 为了更形象的解释组件扫描与自动装配,我们举一个音响系统的例子,主要包含以下内容: CD接口 CD接口的一个实现类 CD播放器 关于CD和CD播放器关系的解释: 如果你不将CD插入(注入)到CD播放器中,那么CD播放器其实是没有太大用处的.所以,可以这样说, CD播放器依赖于

Spring自动化装配bean

1. 场景 用CD(Compact disc)和CD播放器(CDPlayer)阐述DI(依赖注入). 如果不将CD插入(注入)到CDPlayer中,那么CDPlayer其实没有太大的用处,所以,可以这样说:CDPlayer依赖于CD才能完成它的使命. 2. 架构图示 3. 代码 接口: CompactDisc.java package soundsystem; public interface CompactDisc { void play(); } 接口: MediaPlayer.java p

Spring 自动化装配Bean

声明一张cd的接口: public interface CompactDisc { public abstract void play(); } 实现cd接口: @Component("SgtPeppers") public class SgtPeppers implements CompactDisc { private String title = "Sgt.Pepper's Lonely Hearts Club Band"; private String ar

02 装配Bean

2.1 Spring配置的可选方案 在XML中显式配置 在Java中进行显式配置 隐式的bean发现机制和自动装配机制 建议是,尽可能使用隐式的配置,在必须使用显式配置时(比如你没有源代码),最好采用JavaConfig而不是XML 只有想要使用便利的XML命名空间并且在JavaConfig没有同样的实现时,才应该使用XML JavaConfig相对于XML的直接优势是重构友好,并且构造bean时可以通过Java代码精细控制 2.2 自动化装配Bean Spring从两个角度实现自动化装配 组件

(七)装配Bean(1)

针对给接口提供哪一个具体的实现,也就是装配哪一种具体的实现bean,在Spring中提供了多种方式,主要包括3种: 一.隐式的bean发现机制和自动装配(自动化装配bean) 二.在Java类中进行显式的配置 三.在XML中进行显式的配置 一.自动化装配Bean 实现方式: 组件扫描:Spring会自动发现应用上下文所创建的bean 自动装配:Spring自动满足bean之间的依赖. 原理:通过spring注解(@Component)来表明该类会作为组件类,并告知Spring要为这类创建bean

Spring 实战-第二章-装配Bean

Bean是Spring对象的声明(装配wiring),要使用Spring,必须先装配需要使用的对象,有3种装配的方式 自动化装配Bean 通过Java代码装配 通过XML装配 自动化装配Bean 自动化装配Bean很简单 1.声明接口 package soundsystem; public interface CompactDisc { void play(); } 2.添加注解 package soundsystem; import org.springframework.stereotype