`

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();
		
	}
}

 

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

分享到:
评论

相关推荐

    spring-framework-3.2.4.RELEASE-dist.jar包

    3. **初始化ApplicationContext**:通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`加载配置。 4. **使用Bean**:从ApplicationContext中获取Bean并进行业务操作。 五、案例分析 以...

    spring-framework-4.3.4

    3. **启动Spring**:在应用启动时,通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`来加载配置并启动Spring容器。 4. **使用Bean**:Spring容器会自动管理Bean的生命周期,包括创建、...

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    Spring框架文档 - 核心技术部分 中文版 - 第一部分.pdf

    - **实例化容器**:Spring提供了多种方式来实例化容器,例如通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`,分别对应XML和注解配置。 - **使用容器**:一旦容器被实例化,就可以...

    Spring IoC简单示例-注解配置-Maven构建

    import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ...

    spring-ioc-demo

    通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`创建容器实例。 6. **bean的生命周期**:Spring容器可以管理bean的完整生命周期,包括初始化、正常运行和销毁。可以使用`@...

    Spring-jar.zip

    3. **初始化容器**:使用`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`来加载配置并启动Spring容器。 4. **使用Bean**:通过容器获取并使用已初始化的Bean,进行业务逻辑处理。 总的来...

    spring-framework5.1.7:spring-framework5.1.7源码解析

    我对Spring原理的理解处于“点到为止”的状态:对于主线流程不太重要的逻辑跳过,或者只关注它做了什么。 学习Spring原始代码查找了很多资料,分享几篇大佬写的文章,对我Spring的学习较多很大帮助 ,以...

    Spring高级之注解驱动开发视频教程

    它里面包含了Spring,SpringMVC,SpringData(事务),SrpingTest等等。 其中: Spring本身里面包含了两大核心IOC和AOP。IOC负责降低我们代码间的依赖关系,使我们的项目灵活度更高,可复用性更强。AOP是让方法间...

    spring-framework 中文文档.pdf

    可以通过多种方式完成此操作,例如使用 `new ClassPathXmlApplicationContext()` 或 `new AnnotationConfigApplicationContext()` 等方法。 - **使用容器**:一旦容器被实例化,就可以通过调用相应的方法来获取 Bean...

    Spring项目运行依赖spring-contex解析

    在main方法中,我们创建了一个`AnnotationConfigApplicationContext`实例,并使用它来获取`SampleService` bean,并调用其`helloWorld()`方法。 spring-context依赖项提供了许多有用的功能,例如: * 依赖注入...

    spring源码解析

    - **AnnotationConfigApplicationContext**:基于注解的 IoC 容器,可以从 Java 配置类中读取 Bean 的定义。 #### 3. Spring IoC 容器的初始化过程 Spring IoC 容器的初始化过程通常涉及以下几个步骤: 1. **加载...

    spring4.0 Configuration的使用.docx

    - **实现方式**:首先,定义一个带有 **@Configuration** 注解的类,然后通过 Spring 提供的 `AnnotationConfigApplicationContext` 来加载这个配置类,从而启动 Spring 容器。 - **示例代码**: ```java package...

    Spring注解驱动开发1

    import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ...

    spring3.1中文参考文档

    - **4.12.2 使用AnnotationConfigApplicationContext实例化Spring容器** - 介绍了如何使用AnnotationConfigApplicationContext来实例化容器。 - **4.12.3 构成基于Java的配置** - 介绍了如何构建基于Java的配置,...

    spring5源码 gradle编译好的,可以直接在idea运行,包含demo-test测试模块

    发现csdn上其他的spring5 源码都不能直接运行,花了大量时间自己用gradle 编辑一下spring5.1的源码,可以直接在...点进去AnnotationConfigApplicationContext类 定位一下将会发现确实是自己项目中spring-context的类

    Spring系列面试题129道(附答案解析)

    1、不同版本的SpringFramework有哪些主要功能? Spring Framework是一个开源的Java平台,它提供了全面的编程和配置模型,适用于企业级应用程序的开发。随着版本的更新,Spring引入了新特性和改进,例如对注解的更好...

    Spring源码总结.pdf

    - **AnnotationConfigApplicationContext**: 无XML配置,基于注解的配置,更加简洁。 - **EmbeddedWebApplicationContext**: 用于Spring Boot应用,自动配置Web环境。 2. **XML属性配置的解析过程**: - `...

Global site tag (gtag.js) - Google Analytics