`
liuzhaomin
  • 浏览: 204836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Spring类路径扫描注入Bean

阅读更多

 

package com.astute.sparrow.spring.ioc.method_injection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Component("a")
public class A {
	@Autowired
	@Qualifier("b")
	private B b;

	public B getB() {
		return b;
	}

	public void setB(B b) {
		this.b = b;
	}

}

package com.astute.sparrow.spring.ioc.method_injection;

import org.springframework.stereotype.Component;

@Component("b")
@Scope("prototype")
public class B {

}
 
package com.astute.sparrow.spring.ioc.method_injection;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestBeanFactoryViaClasspathScan {
	
	public static void main(String[] args) {
		ApplicationContext factory = new ClassPathXmlApplicationContext("com/astute/sparrow/spring/ioc/method_injection/spring-classpath-scan.xml");
		A a = (A) factory.getBean("a");
		System.out.println(a.getB());
		System.out.println(a.getB());
		System.out.println(a.getB());
		System.out.println(a.getB());
                System.out.println("========================");
		
		System.out.println(factory.getBean("b"));
		System.out.println(factory.getBean("b"));
		System.out.println(factory.getBean("b"));
		System.out.println(factory.getBean("b")); }
	
}
 

输出:

写道
com.astute.sparrow.spring.ioc.method_injection.B@1394894
com.astute.sparrow.spring.ioc.method_injection.B@1394894
com.astute.sparrow.spring.ioc.method_injection.B@1394894
com.astute.sparrow.spring.ioc.method_injection.B@1394894
========================
com.astute.sparrow.spring.ioc.method_injection.B@1b8f864
com.astute.sparrow.spring.ioc.method_injection.B@bb7759
com.astute.sparrow.spring.ioc.method_injection.B@1989f84
com.astute.sparrow.spring.ioc.method_injection.B@110c424
 

 

 

 

分享到:
评论

相关推荐

    Spring的自动扫描注入.docx

    在 Spring 2.5 中,引入了组件自动扫描机制,该机制可以在类路径下寻找标注了 @Component、@Service、@Controller、@Repository 注解的类,并将这些类纳入 Spring 容器中管理。 @Component、@Repository、@Service...

    Spring学习笔记(9)----让Spring自动扫描和管理Bean

    在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式配置每个Bean,而是通过指定包路径来让Spring自动发现和管理Bean。本文将深入探讨这个主题,帮助你更好地理解和应用这一功能。 首先,让...

    spring3零配置注解实现Bean定义

    4. 为了启用自动扫描和注册Bean定义,需要在Spring配置文件中使用`<context:component-scan>`标签,并通过`base-package`属性来指定需要扫描的类路径位置。 5. 在配置文件中还可以通过`<aop:aspectj-autoproxy/>`...

    spring启动componentscan类扫描加载过程

    这个过程涉及到Spring IoC(Inversion of Control)容器的初始化,包括类路径扫描、Bean定义的创建以及实例化。接下来,我们将深入探讨`@ComponentScan`的工作原理及其背后的源码分析。 首先,`@ComponentScan`注解...

    Spring中与Bean相关的接口

    这些注解简化了Bean的声明,使得Spring可以通过扫描包路径自动发现和注册Bean。 对于依赖注入,Spring提供了`@Autowired`注解,它可以根据类型或者通过`@Qualifier`指定名称来自动装配Bean。此外,`@Value`注解可以...

    spring注解开发--Bean加载控制.zip

    你可以指定包路径,Spring会扫描该路径及其子路径下的所有类,将带有@Component及其派生注解的类注册为bean。 3. **@Scope** `@Scope`注解用于定义bean的作用域。Spring支持单例(singleton)、原型(prototype)...

    Spring2.5 自动扫描classpath

    在Spring 2.5版本中,这个功能极大地简化了配置,使得开发者无需显式地声明每个bean,只需在类路径(ClassPath)上设置一些元数据,Spring就能自动发现并管理这些bean。 自动扫描classpath是指Spring框架会搜索指定...

    Spring通过在classpath自动扫描方式把组件纳入spring容器中管理

    在Spring框架中,自动扫描(Auto-Component Discovery)是一种便捷的方式,它允许开发者无需显式配置每个bean,就能将类路径下(classpath)的特定包及其子包中的组件(即带有特定注解的类)纳入Spring容器进行管理...

    Spring Boot技术知识点:Bean装配1

    当我们在项目中引入特定的库时,Spring Boot会根据类路径下存在的jar包和配置文件尝试进行自动配置。例如,如果检测到`spring-web`模块,Spring Boot会自动配置Web环境,包括DispatcherServlet和...

    使用反射和注解模拟Spring的依赖注入

    2. **扫描类路径**:遍历类路径,寻找带有`@MyComponent`注解的类,并将它们存入一个Map中,key为bean的名称,value为对应的Class对象。 3. **创建bean实例**:使用反射的`Class.newInstance()`方法或构造函数创建...

    扩展Spring—使用Annotation将配置资源注入到Bean中

    例如,`@ConditionalOnClass`检查类路径中是否存在某个类,如果存在则创建Bean。 10. ** Profiles `@Profile`注解可以用来定义Bean在特定环境下(如dev、test、prod)才生效。例如,`@Profile("dev")`表明该Bean只...

    Java中Spring获取bean方法小结

    - 使用`ClassPathXmlApplicationContext`,从类路径加载配置文件。例如: ```java ApplicationContext context = new ClassPathXmlApplicationContext("appcontext.xml"); ``` - **通过代码注解**:Spring也...

    Spring读取配置文件原理(Spring如何依赖注入的)

    1. 加载XML文件:通过`Resource`接口加载指定的XML配置文件,`ClassPathResource`是常用的实现类,可以从类路径中加载资源。 2. 解析XML:使用`DocumentBuilder`解析XML文档,获取DOM树。 3. 遍历DOM树:`...

    使用xml和annotation实现类似spring依赖注入和自动扫描类的功能

    通过指定包扫描路径,Spring可以自动发现并管理所有标记为组件的类。在XML配置中,我们使用`<context:component-scan>`标签来实现: ```xml ``` 这将扫描`com.example`及其子包下的所有@Component注解的类。而在...

    No bean named xxx available报错解决

    Spring容器在扫描bean定义时,会基于指定的包路径进行查找。因此,我们需要将这些类放入正确的包中,例如`com.spring`。 在创建了正确的包结构后,我们需要配置Spring的bean扫描。如果使用的是XML配置,我们会在...

    spring bean加载

    Spring会通过类路径扫描找到这些标记的类。 - Java配置:通过实现`Configuration`接口或使用`@Configuration`注解的类来定义Bean。例如: ```java @Configuration public class AppConfig { @Bean public ...

    spring3零配置注解实现Bean定义(包括JSR-250、JSR-330)

    Spring3提供了一种无需XML配置即可完成Bean定义的方法,即通过扫描类路径中的特定注解来自动注册Bean。这种方式极大地简化了Bean的管理过程,使得开发人员能够更专注于业务逻辑的编写而非繁琐的配置工作。 #### ...

    spring注解笔记

    通过base-package属性指定需要扫描的包路径,Spring将会扫描该包及其子包下带有@Component、@Controller、@Service或@Repository注解的类,并自动注册为Bean。 #### 8. 多包扫描配置 在"context:component-scan...

    spring3.0依赖注入详解

    本文将深入探讨Spring 3.0中依赖注入的新特性,特别是如何使用`@Repository`、`@Service`、`@Controller`和`@Component`注解来标记类为Bean,以及如何利用`<context:component-scan/>`元素自动扫描和注册这些Bean。...

    编码剖析Spring依赖注入的原理

    Spring还支持基于注解的配置,通过扫描包路径查找带有特定注解的类,自动创建bean定义。 在实际开发中,结合单元测试,依赖注入使得我们可以轻松地替换依赖,便于测试不同场景下的行为。通过合理地使用Spring的依赖...

Global site tag (gtag.js) - Google Analytics