/**
*
*/
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();
}
}
主要通过注解的方式来手动添加要定义的类。