第2章 装配Bean---笔记1
来源:互联网 发布:淘宝网二手苹果手机 编辑:程序博客网 时间:2024/06/06 00:27
概述:
创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质。在本章我们将介绍使用Spring装配 bean的基础知识。因为DI是Spring的最基本要素,所以在开发基于Spring的应用时,你随时都在使用这些技术。
2.1Spring配置的可选方案
主要装配方式:
- 在XML中进行显示配置
- 在java中进行显式配置
- 隐式的bean发现机制和自动装配
2.2 自动化装配bean
Spring从两个角度实现自动化装配:
- 组件扫描(component scanning)
- 自动装配(autowiring)
本书的例子CD盘插入CD播放器
package learn.chapter2;/** * 定义一个CD接口 * @author chenliang * */public interface CompactDisc {void play();}
package learn.chapter2;import org.springframework.stereotype.Component;/** * 创建一个Adele的歌曲hello * @author Administrator * */@Componentpublic class AdeleSong implements CompactDisc{private String title = "hello";private String artist = "Adele";public void play() {System.out.println("歌曲为:" + title + "\t歌手为:" + artist);}}
java配置类形式
package learn.chapter2;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration //说明是一个配置类@ComponentScan //表示的它的作用是扫描public class CDPlayerConfig {}
xml配置形式
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="learn.chapter2"/></beans>测试类:
package learn.chapter;import static org.junit.Assert.assertNotNull;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import learn.chapter2.CDPlayerConfig;import learn.chapter2.CompactDisc;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes=CDPlayerConfig.class)public class CDPlayer {@Autowiredprivate CompactDisc cd;/** * 基于java配置文件注入 */@Testpublic void cdShouldNotBeNullByConfig() {assertNotNull(cd);}/** * 基于配置文件自动注入 * 注释@RunWith和@ComtextConfiguration */@Testpublic void cdShouldNotBeNullByXml() {//首先要加载xml配置文件ApplicationContext ac = new ClassPathXmlApplicationContext("scan.xml");assertNotNull(ac.getBean("adeleSong"));}}
总结:
1.java配置需要两个注释,第一个@Configuration (表明它不是一个普通的类) 第二个@ComponentScan (既然不是一个普通类,那它做啥,扫描@Component)
2.JUnit测试@RunWith基于Spring的运行测试器,@ContextConfiguration 可以加载java类的配置(在特定的环境下加载配置java的配置文件)
3.@ComponentScan 可以设置基础包 @ComponentScan(basePackages="learn.chapter2") 多个目录的时候,类似java数组一样配置
@ComponentScan(basePackages={"基础包1","基础包2"}) 或者 @ComponentScan(basePackageClasses={CDPlayer.class, DVDPlayer.class})
阅读全文
0 0
- 第2章 装配Bean---笔记1
- 第2章 装配Bean(笔记)
- 第2章 装配Bean---java显示装配---笔记3
- 第2章 装配Bean---xml显示装配---笔记4
- 第3章 装配Bean---高级装配--笔记2
- 第3章 装配Bean---高级装配--笔记1
- 第2章 装配Bean
- 第2章 装配Bean---@Autowired注解---笔记2
- 第3章 装配Bean---高级装配--笔记3
- 第2章 装配Bean---xml和javaConfig混合使用装配---笔记5
- 第2章 装配Bean_2.1声明Bean
- spring笔记1 装配bean
- 第2章 装配Bean_2.2注入Bean属性
- Spring实战笔记2---Bean的装配
- spring学习笔记2--bean装配
- Spring笔记---装配Bean
- SpringInAction第3版学习日记(1)-装配Bean
- 第二章 装配Bean
- Ubuntu常见问题解决方法
- C++入门基础知识
- matlab之size:返回矩阵的行数和列数
- Extjs控件属性
- DoKuWiki知识库的搭建
- 第2章 装配Bean---笔记1
- Android Activity生命周期图解及常见问题汇总
- 自定义Toast提示框 → AppToastMgr
- ./configure,make,make install的作用
- Starting MySQL as a Windows Service
- isotope + imageLoaded
- PHP学习笔记——超全局数组介绍(下)
- 习题8.10
- 中位数(C语言)