spring中为了减少xml中配置,可以声明一个配置类(例如SpringConfig)来对bean进行配置。

一、首先,需要xml中进行少量的配置来启动Java配置:

<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" 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-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<context:component-scan base-package="SpringStudy.Model">
</context:component-scan>
</beans>

二、定义一个配置类

用@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean。

代码如下:

package SpringStudy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import SpringStudy.Model.Counter;
import SpringStudy.Model.Piano; @Configuration
public class SpringConfig { @Bean
public Piano piano(){
return new Piano();
}
@Bean(name = "counter")
public Counter counter(){
return new Counter(12,"Shake it Off",piano());
}
}

三、基础类代码

package SpringStudy.Model;  

public class Counter {
public Counter() {
} public Counter(double multiplier, String song,Instrument instrument) {
this.multiplier = multiplier;
this.song = song;
this.instrument=instrument;
} private double multiplier; private String song; @Resource
private Instrument instrument; public double getMultiplier() {
return multiplier;
} public void setMultiplier(double multiplier) {
this.multiplier = multiplier;
} public String getSong() {
return song;
} public void setSong(String song) {
this.song = song;
} public Instrument getInstrument() {
return instrument;
} public void setInstrument(Instrument instrument) {
this.instrument = instrument;
} }

Piano类

package SpringStudy.Model;  

public class Piano {
private String name="Piano";
private String sound; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSound() {
return sound;
} public void setSound(String sound) {
this.sound = sound;
} }

四、调用测试类

package webMyBatis;  

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import SpringStudy.Model.Counter; public class SpringTest {
public static void main(String[] args) {
//ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/bean.xml");// 读取bean.xml中的内容
ApplicationContext annotationContext = new AnnotationConfigApplicationContext("SpringStudy");
Counter c = annotationContext.getBean("counter", Counter.class);// 创建bean的引用对象
System.out.println(c.getMultiplier());
System.out.println(c.isEquals());
System.out.println(c.getSong());
System.out.println(c.getInstrument().getName());
}
}

注意:如果是在xml中配置beans和bean的话,或者使用自动扫描调用的话,代码为

ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/bean.xml");// 读取bean.xml中的内容
Counter c = ctx.getBean("counter", Counter.class);// 创建bean的引用对象

五、运行结果

12.0
false
Shake it Off
Piano

最新文章

  1. 20款jQuery 的音频和视频插件
  2. poj-1703-Find them, Catch them
  3. SQL Server存储过程复习(一)
  4. Centos php项目发布问题
  5. ubuntu thrift 0.9.3编译安装
  6. Android开发常见问题及解决方法
  7. 一个小程序,时间util
  8. 由于 UNION ALL Chinese_PRC_CI_AS”之间的排序规则冲突,值的排序规则未经解析
  9. 为什么 dll 改名字之后无法使用
  10. Quartz 2D 初步
  11. CodeForces 721A
  12. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包
  13. 建立CMenu菜单项,实现选中菜单项点击左键响应事件
  14. Python3 日期与时间戳相互转换
  15. JDK的下载,安装,环境变量配置
  16. ocr智能图文识别 tess4j 图文,验证码识别
  17. Jquery EasyUI Combotree和 EasyUI tree展开所有父节点和获取完整路径
  18. Django 部署(Nginx+uwsgi)
  19. 欧拉函数(小于或等于n的数中与n互质的数的数目)&amp;&amp; 欧拉函数线性筛法
  20. 追MM与设计模式

热门文章

  1. C# Serializable(转)
  2. JQuery--使用autocomplete控件进行自己主动输入完毕(相当于模糊查询)
  3. Strut2------源码下载
  4. EF的代码优先设计
  5. Python Scrapy初步使用
  6. Python 入门(一)定义字符串+raw字符串与多行字符串
  7. poj_2441 状态压缩dp
  8. 本地schemeApp扩展
  9. Java三方----&gt;excel框架之POI的使用一
  10. Linux find、grep命令详细用法