【Spring 核心】装配bean(二) JavaConfig装配
来源:互联网 发布:excel2007筛选重复数据 编辑:程序博客网 时间:2024/06/06 08:54
前面介绍完了组件扫描和自动装配,这里再来看一下装配bean的另一种方式JavaConfig。
包路径:
src/main/java
com.bonc-|--config--|--CDPlayerConfig.java (配置类)
|--pojo---|--CompactDisc.java (接口CompactDisc)
|--SgtPeppers.java (类SgtPeppers实现了CompactDisc)
|--MediaPlayer.java (接口 MediaPlayer)
|--CDPlayer.java (类CDPlayer实现了MediaPlayer)
接口 CompactDisc.java
package com.bonc.pojo;public interface CompactDisc {void play();}实现类 SgtPeppers.java
package com.bonc.pojo;public class SgtPeppers implements CompactDisc {private String title = "Sgt. Pepper's Lonely Hearts Club Band";private String artist = "The Beatles";public void play() {System.out.println("Playing "+title+"by"+artist);}}接口 MediaPlayer.java
package com.bonc.pojo;public interface MediaPlayer {void play();}
实现类CDPlayer.java
package com.bonc.pojo;public class CDPlayer implements MediaPlayer{private CompactDisc cd;public CDPlayer(){super();}public CDPlayer(CompactDisc cd){this.cd = cd;}public void play() {cd.play();}public void setCd(CompactDisc cd) {this.cd = cd;}}
配置类:(核心内容)
package com.bonc.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.bonc.pojo.CDPlayer;import com.bonc.pojo.CompactDisc;import com.bonc.pojo.SgtPeppers;/* * 背景信息: *很多场景下,推荐组件扫描、自动装配。但有些第三方组件是不方便装配的,因此需要显示配置, *显示配置有两种JavaConfig或XML。 *进行显示配置,JavaConfig是更好的方案,因为它更加强大、类型安全、易于重构。 * * JavaConfig: *1.@Configuration表明这是一个配置类,该类应该包含Spring上下文如何创建bean的细节。 *2.尽管我们可以同时使用组件扫描和显示配置,但在这里我们更加关注显示配置, *3.因此我们将CDPlayerConfig的@ComponentScan注解移除掉了。 *4.JavaConfig是配置代码,意味着它不应该包含任何业务逻辑,也不应该侵入到业务代码中。 *5.通常会将JavaConfig放到单独的包中,使它与其他应用程序逻辑分离开。 * * */@Configurationpublic class CDPlayerConfig {/* * 方法说明: * @Bean注解告诉Spring这个方法将会返回一个CompactDisc类型的对象,该对象要注册为Spring应用上下文中的bean * 方法体包含了最终产生bean实例的逻辑。 * ID: * 默认情况下,bean的ID与带有@Bean注解的方法名是一样的,在本实例中,bean的默认是sgtPeppers * 如果要自定义bean的ID,可以设name属性。 * * * */@Beanpublic CompactDisc sgtPeppers(){return new SgtPeppers();}/* * JavaConfig中装配bean的最简单方式就是引用创建bean的方法 * 方法说明: * cdPlayer没有使用默认的构造器创建实例,而是调用了sgtPeppers() * Spring会拦截sgtPeppers()的调用,来确保sgtPeppers的单例 * 每次调用sgtPeppers都返回同一个实例 * * */@Beanpublic CDPlayer cdPlayer(){return new CDPlayer(sgtPeppers());}/* * 更为简单的方式,cdPlayer请求一个CompactDisc作为参数, * 通过这种方式引用其他的bean是最佳的选择,因为它不会要求sgtPeppers()方法在同一个配置类中 * 甚至没有要求CompactDisc要在JavaConfig中声明 * 实际上它可以通过组件扫描或XML配置进行配置 * 你可以将配置分散到多个配置类、XML文件、以及自动扫描和装配bean中,只要功能健全即可。 * */@Beanpublic CDPlayer cdPlayer(CompactDisc cd){return new CDPlayer(cd);}/* * 还可以通过其他风格实现DI功能,不限于构造器和setter方法 * */@Bean CDPlayer cdPlayer2(CompactDisc compactDisc){CDPlayer cdPlayer = new CDPlayer();cdPlayer.setCd(compactDisc);return cdPlayer;}}
0 0
- 【Spring 核心】装配bean(二) JavaConfig装配
- Spring journey -- JavaConfig 装配 Bean
- spring实战-JavaConfig装配bean
- Spring Bean之JavaConfig自动化装配bean
- Spring(二)--Bean装配
- Spring(二)---装配Bean
- 【Spring 核心】装配Bean(一) 自动化装配
- spring 装配bean(二)
- 装配Bean:JavaConfig@Bean@Configuration
- 装配Bean:XML与JavaConfig混合装配
- 装配Bean(二)
- Spring基础—装配bean(二)
- Spring基础—装配bean(二)
- Spring基础—装配bean(二)
- Spring实战--(二)装配Bean
- spring笔记:第二章(通过javaconfig类装配bean)
- Spring之装配bean(二)
- Spring(二)装配Bean(注入)
- 理解维特算法
- Java初学之final,static关键字
- 剑指offer经典编程(十五)
- 聚合函数
- 树形dp-P1270 “访问”美术馆P3360 偷天换日
- 【Spring 核心】装配bean(二) JavaConfig装配
- 成功的背后!(给所有IT人)
- WebSocket解读
- LeetCode 35. Search Insert Position
- 透过IP端到端身份互信测试 解读西电捷通TISec 技术
- 【internal】oracle数据块解析
- 人活着系列之芳姐和芳姐的猪
- Docker与Kubernetes系列(五): Docker的原理1_Linux Namespace
- 硬件高速缓存