我们需要使用@Component注解来定义一个配置类,在配置类中我们定义Bean:

package com.moonlit.myspring;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; @Configuration
public class MoonlitConfig {
@Bean
public Weapon halberd() {
return new Halberd();
}
@Bean
public Hero guanyu() {
GuanYu gy = new GuanYu();
gy.setWeapon(halberd());
return gy;
}
}

这里的GuanYu类如下:

package com.moonlit.myspring;

public class GuanYu implements Hero {
private Weapon weapon;
public void perform() {
System.out.println("Guan Yu pick up his weapon.");
weapon.attack();
}
public Weapon getWeapon() {
return weapon;
}
public void setWeapon(Weapon weapon) {
this.weapon = weapon;
}
}

然后我们就可以使用这个基于@Bean注解的bean了,下面的测试类用于演示效果:

package com.moonlit.practice;

import com.moonlit.myspring.Hero;
import com.moonlit.myspring.MoonlitConfig; public class TestPractive {
public static void main(String[] args) {
Hero hero = new MoonlitConfig().guanyu();
hero.perform();
}
}

输出效果如下:

Guan Yu pick up his weapon.
halberd is attacking!!!

最新文章

  1. 【01-05】hibernate BaseDao
  2. ARM学习 之 如何在向内核写入系统调用
  3. SQL Server 常用命令使用方法
  4. HTML5 Canvas 高仿逼真 3D 布料图案效果
  5. Debian 8(Jessie) 安装自带Mysql
  6. .NET学习记录2
  7. English Training Material - 03
  8. 理解javascript中的策略模式
  9. wamp集成环境开启虚拟主机多站点功能
  10. Arduino "Card failed, or not present"(即找不到SD卡)错误解决方案
  11. 设置TextView文字居中
  12. 2015年NEUACM一月月赛题解
  13. CentOS更换python版本后,yum不可用的问题
  14. 体验Lua
  15. 第八届河南省赛F.Distribution(水题)
  16. About大数据插码
  17. 转 12C 连接CDB和PDB
  18. Java - day002 - 运算符,位运算,流程控制
  19. 我们如何用Go来处理每分钟100万复杂请求的场景
  20. Linux 判断进程是否运行

热门文章

  1. 微信公众平台消息接口PHP版
  2. Linux下源码安装JDK7
  3. Android EditText 赋值与取值
  4. 摘:LIB和DLL的区别与在VC中的使用
  5. 三维模型 DAE 导出格式结合 OpenGLES 要素浅析
  6. Django Drops
  7. location if (.....) #if与中括号之间要有空格
  8. Spring学习9-MyEclipse中Spring工程使用@Resource注释的问题
  9. 解决:ubuntu 里文件夹带锁
  10. CodeForces 459D Pashmak and Parmida's problem