spring extral features-----AnnotationConfigApplicationContext

/**
 * 
 */
package cn.ythd.spring.service.impl;


import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import cn.ythd.spring.Quality;
import cn.ythd.spring.service.UserService;

/**
 * @author 
 * 2013-6-29
 */
@Quality
@Component
@Scope(value="prototype")
public class UserServiceImpl2 implements UserService {

	/**
	*----2013-6-29
	*/
	public void save(String name, String password) {
		System.out.println("user service impl 2 save method");
		
	}

}

  测试类如下:

/**
 * 
 */
package cn.ythd.spring.test;

import junit.framework.Assert;

import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import cn.ythd.spring.service.UserService;
import cn.ythd.spring.service.impl.UserServiceImpl2;

/**
 * @author gongz
 * 2013-6-30
 */
public class AnnotationConfigApplicationContextTestDemo {

	@Test
	public void test1(){
		
		//该类继承自GenericApplicationContext 所以也具有动态创建对象、处理依赖的特性
		AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext();
		//该对象也是一个BeanDefinitionRegistry对象
		//context.registerBeanDefinition(beanName, beanDefinition)
		//注册的注解类可以没有任何的注解,但是如果需要一些个特殊需求(例如bean的个数,事务特性)的时候,就需要定义注解
                context.register(UserServiceImpl2.class);
		
		UserService userService=context.getBean(UserService.class);
		
		Assert.assertNotNull(userService);
		
		UserService userService2=context.getBean(UserService.class);
		
		Assert.assertNotSame(userService, userService2);
		
		System.out.println(userService2==userService);//false
		
		context.refresh();
		
		userService.save("123456", "password");
		
		context.close();
		
	}
}

 

主要通过注解的方式来手动添加要定义的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值