内容简介:有以下三种配置在xml中配置在java中配置
有以下三种配置
在xml中配置
在 java 中配置
bean自动装配
自动装配
这里以转载CD为例子
首先需要建立CD概念
即,定义一个cd接口
只需要实现添加两个注解,
package com.ming;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* 定义cd接口
* @author ming
*/
@Configuration
@ComponentScan
public interface CompactDisc {
/**
* 规定方法为play
*/
void play();
}
package com.ming;
import org.springframework.stereotype.Component;
/**
*
* @author ming
*/
// 启用组件扫描
@Component
class SgtPeppers implements CompactDisc {
private String title = "标题";
private String artist = "内容";
/**
* 规定方法为play
*/
@Override
public void play() {
System.out.println(this.artist + this.title);
}
}
package com.ming;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.Assert.*;
public class CompactDiscTest {
private ApplicationContext applicationContext = null;
@Before
public void setUp() throws Exception {
applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
}
@After
public void tearDown() throws Exception {
}
@Test
public void play() {
CompactDisc compactDisc = applicationContext.getBean(CompactDisc.class);
assertNotNull(compactDisc);
}
}
扫描的时候,会直接按照该类所在的包,作为基础包,进行扫描
对依赖的实现自动装配
添加注解以后,初始化bean以后,会尽可能的满足bean的依赖
目录如下
package com.ming;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
*
* @author ming
*/
@Component
public class CDPlay implements MediaPlayer {
CompactDisc compactDisc = null;
@Autowired
public CDPlay(CompactDisc compactDisc){
this.compactDisc = compactDisc;
}
/**
* 规定方法为play
*/
@Override
public void play() {
compactDisc.play();
}
}
package com.ming;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* 定义cd接口
* @author ming
*/
@Configuration
@ComponentScan
public interface CompactDisc {
/**
* 规定方法为play
*/
void play();
}
package com.ming;
import org.springframework.context.annotation.ComponentScan;
/**
* @author ming
*/
@ComponentScan
public interface MediaPlayer {
/**
* 规定方法为play
*/
public void play();
}
package com.ming;
import org.springframework.stereotype.Component;
/**
*
* @author ming
*/
// 启用组件扫描
@Component
class SgtPeppers implements CompactDisc {
private String title = "标题";
private String artist = "内容";
/**
* 规定方法为play
*/
@Override
public void play() {
System.out.println(this.artist + this.title);
}
}
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.ming"/>
</beans>
package com.ming;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.Assert.*;
public class CompactDiscTest {
private ApplicationContext applicationContext = null;
@Before
public void setUp() throws Exception {
applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
}
@After
public void tearDown() throws Exception {
}
@Test
public void play() {
MediaPlayer mediaPlayer = (MediaPlayer) applicationContext.getBean(MediaPlayer.class);
mediaPlayer.play();
assertNotNull(mediaPlayer);
}
}
运行结果
在这里,在装配的时候,尽量满足配置规则进行装配
Java代码装配bean
package com.ming;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
*
* @author ming
*/
@Configuration // 注解表明这是一个配置类
public class CDPlayerConfig {
@Bean
public CompactDisc sgtPeppers(){
// 此处进行装配
return new SgtPeppers();
}
/**
* 注入装配
* @return
*/
@Bean
public CDPlay cdPlay(){
return new CDPlay(this.sgtPeppers());
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
马尔可夫链:模型、算法与应用
Wai-Ki Ching、Ximin Huang / 陈曦 / 清华大学出版社 / 2015-6 / 39
《马尔可夫链:模型、算法与应用 应用数学译丛》讲述了马尔可夫链模型在排队系统、网页重要性排名、制造系统、再制造系统、库存系统以及金融风险管理等方面的最新应用进展.全书共安排8章内容,第1章介绍马尔可夫链、隐马尔可夫模型和马尔可夫决策过程的基本理论和方法,其余7章分别介绍马尔可夫链模型在不同领域中的应用. 《马尔可夫链:模型、算法与应用 应用数学译丛》可作为自动化、工业工程、统计学、应用数学以及管理......一起来看看 《马尔可夫链:模型、算法与应用》 这本书的介绍吧!