一、自动化装配

首先,把可能被装配的类声明为组件类,告知spring要为这个类创建bean如:

import org.springframework.stereotype.Component;@ Component
public class CD{private String title="稻香";private String artist=“周杰伦”;public void play(){System.out.println("...童年的纸飞机飞回我手里...");}}

其次,在CDplayer类中声明自动装配一个CD(有两种方法,一种是构造器法,一种Setter方法):

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@ Component
public class CDPlayer{private CD cd;at Autowiredpublic CDPlayer(CD cd){this.cd=cd;}public void play(){cd.play();}
}

最后,用java配置或xml配置启用组件扫描:

java方法:

import org.springframework.context.annotation.componentScan;
import org.springframework.context.annotation.Configuration;@ Configuration
@ ComponentScan
public class CDPlayerConfig{}

xml方法:

<bean><context:component-scan base-package="..."/>
</beans>

二、通过Java代码装配bean

用@ Bean注解来声明一个简单bean,如:

@ Bean
public CD oldCd (){return new CD();
}

这个newcd方法会返回一个对象,这个对象要注册为Spring应用上下文中的bean。

接着借助JavaConfig实现注入:

@ Bean
public CDPlayer  cdPlayer(){return new CDPlayer(oldCd());
}

这里说明CDPlayer也是一个spring中的bean。

还有一种方法:

@ Bean
public CDPlayer cdPlayer(CD cd){return new CDPlayer(cd);
}

这种方法,cd既可来自自动xml装配,也可以是java配置或自动扫描,都可以。

三、通过XML装配bean

借助构造器注入初始化bean:

①注入引用:

<bean id="cdPlayer" class="soundsystem.CDPlayer"><constructor-arg ref="cd">
</bean>

②注入字面量:

<bean id="cd" class="soundsystem.BlankDisc"><constructor-arg value="稻香"><constructor-arg value="周杰伦"><constructor-arg><list><value>,,,</value><value>>...</value><!--这里是注入List集合--></list></constructor-arg>
</bean>

③设置引用属性:

<bean id="cdPlayer" class="soundsystem.CDPlayer"><property name="cd"  ref="cd">
</bean>

这里name是属性名,ref是引用的bean
         ④注入字面量到属性中:

<bean id="cd" class="soundsystem.BlankDisc"><property name="title" value="稻香"><property name="歌手" value="周杰伦"><property name=“歌词”><list><value>第一句</value><value>第二句</value><value>第三句</value></lisst></property>
</bean>

四、三种装配方法的混合使用

在java注解中可以使用@ import(CDPlayerConfig.class)组合其他java注解,使用@ imortResource("classpath:cd-config.xml")组合其他xml注解,也可以用一个更高级的注解把Java,xml注解组合起来。

在xml中可以用<import resource="cd-config.xml">引入xml注解,也可以使用<bean class="soundsystem.CDConfig">引入java注解,也可以用一个更高级的xml把java,xml注解组合起来。

Spring装配bean的三种方法:自动化装配,java代码装配,XML装配及它们的混合使用相关推荐

  1. Spring创建Bean的三种方式的使用和区别

    在学习Spring的时候,发现Spring的IOC(控制反转)为我们提供的三种创建Bean的方式. 1.Spring创建Bean的三种方式 这里采用XML配置,分别演示三种创建Bean的方式和代码. ...

  2. 记下来 Spring 装配 Bean 的三种方式

    ps:拿笔记一下,面试可能会考.依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 前言 什么是依赖注入呢?也可以称为控制反转,简单的来说,一 ...

  3. Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire

    创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...

  4. 装配bean的三种方式

    第一种:XML装配 xml装配有两种方式: 第一种:利用有参构造方法注入 User类: package com.liu.xml;import java.util.List; //xml装配bean的两 ...

  5. Spring 创建Bean的三种方式

    创建Bean的三种方式 第一种方式:使用默认构造函数创建. 在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时.采用的就是默认构造函数创建bean对象,此 ...

  6. Spring 实例化bean的三种方式

    第一种方法:直接配置Bean Xml代码   <bena id="所需要实例化的一个实例名称" class="包名.类名"/> 例如: 配置文件中的 ...

  7. Java普通类获取Spring框架Bean 的五种方法

    方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContex(" ...

  8. 算法--生成m个指定范围的不重复随机数的三种方法分析(Java实现)

    Q题目 如何产生m个在0-N范围内的无重复的随机数(不包含N) A解法 2.1 常见解法有两种: 1.间接获取--采用随机下标从已实例化的数组中取元素 2.直接获取随机数--然后一一排除 2.2 间接 ...

  9. java bean销毁,销毁Spring Bean的三种方法

    @PreDestroy Java标准注解 实现DisposableBean的Destroy()方法 自定义销毁方法 XML 配置: Java注解 @Bean(destroy="destroy ...

最新文章

  1. 函数进阶学习之二 声明 定义
  2. 《ZEMAX光学设计超级学习手册》一一2.2 几何光学像质量评价
  3. springboot----静态页面templates文件访问
  4. 多进程与多线程通信同步机制
  5. Educational Codeforces Round 1(D. Igor In the Museum) (BFS+离线访问)
  6. Spring核心知识
  7. 2022 年考研数据结构_6 图
  8. CTO发飙:不要在Java代码中写set/get方法了,逮一次罚款***
  9. matlab 图例自定义,matlab中如何自定义图例_常见问题解析
  10. ubuntu下使用pip卸载包时出现Cannot uninstall scipy
  11. malloc函数的使用
  12. Poi操作Excel,保留格式的情况下插入行
  13. Unity各类数据库的基本操作(三)-- JSON
  14. 008 计算某一日是这一年的第几天
  15. java 高并发商城库存订单处理,下单减库存,如何解决高并发减库存问题
  16. C/C++入门级小游戏——开发备忘录
  17. ps处理黑眼圈黑眼袋的方法集合
  18. 如何查看内核版本和ubuntu版本
  19. 微信语音短消息amr文件转WAV
  20. layui 表格合计

热门文章

  1. Konva的使用快速上手
  2. Java设计模式-工厂模式的详细记录
  3. qnx 设备驱动开发_QNX操作系统及网络设备驱动模块
  4. 极简主义风格的应用方式,在纽约现代美术馆的体现,技术,思潮,思维有哪些?...
  5. 循序渐进的学习TensorFlow中RNN实现的方法
  6. Oracle 查询未提交事务
  7. 红黑树原理及java实现
  8. 图解红黑树原理,再也不怕面试被问到,不详细算我输!
  9. HRED+VHRED+AWI模型介绍
  10. matlab中欠定方程组超定方程组_MATLAB解代数方程组一些函数用法1