/** * */ 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(); } }
主要通过注解的方式来手动添加要定义的类。
相关推荐
3. **初始化ApplicationContext**:通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`加载配置。 4. **使用Bean**:从ApplicationContext中获取Bean并进行业务操作。 五、案例分析 以...
3. **启动Spring**:在应用启动时,通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`来加载配置并启动Spring容器。 4. **使用Bean**:Spring容器会自动管理Bean的生命周期,包括创建、...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
- **实例化容器**:Spring提供了多种方式来实例化容器,例如通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`,分别对应XML和注解配置。 - **使用容器**:一旦容器被实例化,就可以...
import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ...
通过`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`创建容器实例。 6. **bean的生命周期**:Spring容器可以管理bean的完整生命周期,包括初始化、正常运行和销毁。可以使用`@...
3. **初始化容器**:使用`ClassPathXmlApplicationContext`或`AnnotationConfigApplicationContext`来加载配置并启动Spring容器。 4. **使用Bean**:通过容器获取并使用已初始化的Bean,进行业务逻辑处理。 总的来...
我对Spring原理的理解处于“点到为止”的状态:对于主线流程不太重要的逻辑跳过,或者只关注它做了什么。 学习Spring原始代码查找了很多资料,分享几篇大佬写的文章,对我Spring的学习较多很大帮助 ,以...
它里面包含了Spring,SpringMVC,SpringData(事务),SrpingTest等等。 其中: Spring本身里面包含了两大核心IOC和AOP。IOC负责降低我们代码间的依赖关系,使我们的项目灵活度更高,可复用性更强。AOP是让方法间...
可以通过多种方式完成此操作,例如使用 `new ClassPathXmlApplicationContext()` 或 `new AnnotationConfigApplicationContext()` 等方法。 - **使用容器**:一旦容器被实例化,就可以通过调用相应的方法来获取 Bean...
在main方法中,我们创建了一个`AnnotationConfigApplicationContext`实例,并使用它来获取`SampleService` bean,并调用其`helloWorld()`方法。 spring-context依赖项提供了许多有用的功能,例如: * 依赖注入...
- **AnnotationConfigApplicationContext**:基于注解的 IoC 容器,可以从 Java 配置类中读取 Bean 的定义。 #### 3. Spring IoC 容器的初始化过程 Spring IoC 容器的初始化过程通常涉及以下几个步骤: 1. **加载...
- **实现方式**:首先,定义一个带有 **@Configuration** 注解的类,然后通过 Spring 提供的 `AnnotationConfigApplicationContext` 来加载这个配置类,从而启动 Spring 容器。 - **示例代码**: ```java package...
import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ...
- **4.12.2 使用AnnotationConfigApplicationContext实例化Spring容器** - 介绍了如何使用AnnotationConfigApplicationContext来实例化容器。 - **4.12.3 构成基于Java的配置** - 介绍了如何构建基于Java的配置,...
发现csdn上其他的spring5 源码都不能直接运行,花了大量时间自己用gradle 编辑一下spring5.1的源码,可以直接在...点进去AnnotationConfigApplicationContext类 定位一下将会发现确实是自己项目中spring-context的类
1、不同版本的SpringFramework有哪些主要功能? Spring Framework是一个开源的Java平台,它提供了全面的编程和配置模型,适用于企业级应用程序的开发。随着版本的更新,Spring引入了新特性和改进,例如对注解的更好...
- **AnnotationConfigApplicationContext**: 无XML配置,基于注解的配置,更加简洁。 - **EmbeddedWebApplicationContext**: 用于Spring Boot应用,自动配置Web环境。 2. **XML属性配置的解析过程**: - `...