《Spring in action》之装配Bean
public interface Phone {
    void speak();
}
@Component
public class Apple implements Phone{
@Override
public void speak() {
System.out.println("apple speak");
}
}
@Configuration
//@ComponentScan(basePackages = "com.spring.ioc.autowiring")
@ComponentScan(basePackages = {"com.spring.ioc.autowiring","com.spring.di"})
public class PhoneConfig {
}
<!-- 启用组件扫描-->
<context:component-scan base-package="com.spring.ioc.autowiring"/>
测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = PhoneConfig.class)
public class PhoneTest {
@Autowired
private Phone phone;
@Test
public void checkPhone(){
phone.speak();
Assert.assertNotNull(phone);
}
}
@Autowired
public class Xiaoming {
    private Phone phone;
    //这里不管是构造方法、set方法、普通方法@Autowired都能自动装配
    @Autowired
    public Xiaoming(Phone phone) {
        this.phone = phone;
    }
    public void speak(){
        phone.speak();
    }
}
public class XiaoMi implements Phone{
    @Override
    public void speak() {
        System.out.println("小米。。。。。。");
    }
}
@Configuration
public class JavaConfig { @Bean
public Phone getPhone(){
return new XiaoMi();
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = JavaConfig.class)
public class JavaConfigTest {
@Autowired
private Phone phone;
@Test
public void checkPhone(){
phone.speak();
Assert.assertNotNull(phone);
}
}
public static void main(String[] args) {
    //加载java配置类获取Spring应用上下文
    ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
    XiaoMi xiaoMi= ac.getBean(XiaoMi.class);
    xiaoMi.speak();
}
《Spring in action》之装配Bean的更多相关文章
- Spring实战3:装配bean的进阶知识
		主要内容: Environments and profiles Conditional bean declaration 处理自动装配的歧义 bean的作用域 The Spring Expressio ... 
- Spring实战2:装配bean—依赖注入的本质
		主要内容 Spring的配置方法概览 自动装配bean 基于Java配置文件装配bean 控制bean的创建和销毁 任何一个成功的应用都是由多个为了实现某个业务目标而相互协作的组件构成的,这些组件必须 ... 
- Spring框架(3)---IOC装配Bean(注解方式)
		IOC装配Bean(注解方式) 上面一遍文章讲了通过xml来装配Bean,那么这篇来讲注解方式来讲装配Bean对象 注解方式需要在原先的基础上重新配置环境: (1)Component标签举例 1:导入 ... 
- java之Spring(IOC)装配Bean(手动装配、自动装配、注解装配)
		在上一篇控制反转中我们看到了依靠一个Bean文件来实现对代码的控制,可谓十分便捷,再也不用去实例化对象了,2333~~~ 1.手动装配 <bean id="todo" cla ... 
- Spring框架(2)---IOC装配Bean(xml配置方式)
		IOC装配Bean (1)Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 下面先写这三种方法的applicat ... 
- Spring 通过Java代码装配bean
		1. 背景 书接上文Spring自动化装配bean 尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化扫描配置是更为推荐的方式,但在有些情况下自动化扫描的方案行不通,如想要将第三方库中的组 ... 
- Spring学习总结之---装配Bean
		Spring配置的可选方案 前言:Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,作为开发人员,你需要告诉Spring容器要创建那些Bean,以哪种方式创建,并且如何将 ... 
- Spring 通过XML配置装配Bean
		使用XML装配Bean需要定义对于的XML,需要引入对应的XML模式(XSD)文件,这些文件会定义配置Spring Bean的一些元素,简单的配置如下: <?xml version=" ... 
- Spring基础知识之装配Bean
		装配(wiring):创建应用对象之间协作关系的行为.这是依赖注入的本质. Spring配置的可选方案 Spring提供了三种装配机智: 1)在XML中进行显示装配 2)在java中进行显示装配 3) ... 
- Spring IOC 一——容器装配Bean的简单使用
		下文:SpringIOC 二-- 容器 和 Bean的深入理解 写在前面 这篇文章去年写的,缘起于去年某段时间被领导临时"抓壮丁"般的叫过去做java开发,然后在网上找了一个 Sp ... 
随机推荐
- 1.2打印ASCII码
			描述 输入一个除空格以外的可见字符(保证在函数scanf中可使用格式说明符%c读入),输出其ASCII码. 输入一个除空格以外的可见字符.输出一个十进制整数,即该字符的ASCII码.样例输入 A 样例 ... 
- 三分 HDOJ 3714 Error Curves
			题目传送门 /* 三分:凹(凸)函数求极值 */ #include <cstdio> #include <algorithm> #include <cstring> ... 
- CDH搭建Hadoop分布式服务器集群(java新手小白)
			1首先对于一个java还白的小白,先理解CDH与Hadoop的关系 一.Hadoop版本选择. Hadoop大致可分为Apache Hadoop和第三方发行第三方发行版Hadoop,考虑到Hadoop ... 
- sql server 行转列 要注意的问题   pivot
			select * from ( select mvqr.VoteQuestionId,mvqr.AnswerSolution from JY_MemberVoteQuestionRef as ... 
- myeclipse中部署svn
			一.下载SVN插件subclipse 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 在打开的网 ... 
- duilib属性
			原文转载自:http://blog.csdn.net/lixiang987654321/article/details/45008441 这里我想讲解一下duilib中的一些属性的理解,当然这是一篇永 ... 
- Python 设计模式--策略模式
			策略模式(Strategy Pattern) 策略模式是一种与行为相关的设计模式,允许你在运行时根据指定的上下文确定程序的动作.可以在两个类中封装不同的算法,并且在程序运行时确定到底执行哪中策略. 特 ... 
- [ POI 2012 ] Letters
			\(\\\) \(Description\) 给出两个长度为 \(N\) 的字符串\(S_1,S_2\),且保证两个字符串中每一个字符出现次数相同. 现在一次操作可以交换相邻的两个字符,问将 \(S_ ... 
- Unity笔记(3)自学第三天
			学习记录: 脚本使用: 
- Android基础TOP5_5:设置没有标题栏而且用系统壁纸当背景的界面
			在res/values目录下的style.xml设置如下 <style name="AppBaseTheme" parent="android:Theme.Wall ... 
