`
wandejun1012
  • 浏览: 2737125 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

autowired resource component

    博客分类:
  • java
 
阅读更多

背景:同样的bean类型有2个。

尝试用autowired+componet或者resource+component来解决。

 

 

1、component指定名称示例,id为maizims

package hello;

import org.springframework.stereotype.Component;

@Component("maizims")
public class MessageServiceImpl implements MessageService {

	public String getMessage(String str) {
		return "麦子金服欢迎"+str;
	}

}

 

可以观察到,直接在component后面的括号里面加上一个字符串即可。字符串的名字就是beanId。

 

 

2、autowired。

可以放在成员变量上面,也可以放在构造方法上。

如果有多个bean,需要结合@qualifier使用。

使用方法也简单,直接在qualifier后面的括号里面加个字符串,代表引用的bean的Id

package germmy.groovy

import hello.MessageService


import javax.annotation.Resource;

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

class Simple implements ScriptService {
 
        @Autowired
	@Qualifier("maizims")
    private MessageService messageService
 
    public void run() {
        String name = messageService.getMessage("16楼MM");
        System.out.println(name);
    }
}

  

 

 

3、利用resource。

举例:

 

package germmy.groovy

import hello.MessageService


import javax.annotation.Resource;

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

class Simple implements ScriptService {
 

    @Resource(name="maizims")
    private MessageService messageService
 
    public void run() {
        String name = messageService.getMessage("16楼MM");
        System.out.println(name);
    }
}

 

 总结,既然是用到id来识别的,比如maizims。这个就相当于xml文件中的beanId。

 

resource用法举例:http://stackoverflow.com/questions/4462466/autowiring-two-different-beans-of-same-class

 

autowired和qualifier举例:http://stackoverflow.com/questions/15516769/spring-autowire-two-beans-of-the-same-class-which-are-not-defined-in-applicatio

 

 

配置文件外挂的用法:http://stackoverflow.com/questions/23555149/spring-3-mvc-using-component-value-to-read-properties-from-a-file-is-not-wor

 

component扫描多个包的写法,很简单,再加一个就行:https://segmentfault.com/q/1010000000686297

 

http://www.mkyong.com/spring/spring-autowiring-qualifier-example/   qualifier举例。

分享到:
评论

相关推荐

    spring框架的@Resource和@Component 程序和文档

    在Spring框架中,`@Resource`和`@Component`是两个重要的注解,它们用于不同的目的,但都与依赖注入(Dependency Injection,简称DI)息息相关。理解这两个注解的使用和区别是掌握Spring框架核心概念的关键。 首先...

    spring中Resource和Component注解

    `@Component`注解结合`@Autowired`(另一种依赖注入的方式)或`@Resource`,使得我们可以编写更加简洁、松耦合的代码。 `@Autowired`和`@Resource`虽然都能实现依赖注入,但它们之间存在一些差异。`@Autowired`默认...

    详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理

    Spring 依赖注入:@Autowired,@Resource 和@Inject 区别与实现原理 Spring 依赖注入是指在应用程序中将对象之间的依赖关系自动装配的过程。Spring 框架提供了多种依赖注入方式,包括 @Autowired、@Resource 和@...

    Autowired报错原因分析和4种解决方案.docx

    另一种方法是在Mapper类上同时添加Spring的注解,比如@Repository或@Component。这样做的好处是IDEA可以更好地识别这些类属于Spring管理的Bean,从而减少报错的可能性。 ##### 解决方案3:允许注入对象为NULL 如果...

    SSH笔记-通过@Autowired配置注入关系

    8. **`@Autowired`的替代品**:Spring还提供了一些其他的注解,如`@Resource`(基于名称的注入)和`@Value`(用于注入基本类型或属性值)作为`@Autowired`的补充。 结合前一篇文章中的注解笔记,我们可以推断出上一...

    学习Spring笔记_Annotation(注解)_Autowired_Qualifier

    除了`@Autowired`,Spring框架还提供了其他的依赖注入注解,如`@Resource`(主要用于JSR-250规范,基于名称的注入)和`@Inject`(JSR-330规范,基于类型和名称的注入)。这些注解在不同的场景下有不同的优势,开发者...

    @resource所需包.rar

    在实例化bean时,它会根据`@Resource`、`@Autowired`等注解进行依赖注入。 综上所述,`@resource所需包`应该包含了Spring运行所需的库文件,如Spring核心库、AOP库、容器相关库等,以便正确地理解和使用`@Resource`...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    - @Autowired与@Resource:虽然两者都可以用来自动装配,但@Autowired默认按类型匹配,而@Resource默认按名字匹配。 总结,Spring的@Autowired自动装配机制极大地简化了bean之间的依赖管理,提高了代码的可维护性。...

    详解SpringBoot 多线程处理任务 无法@Autowired注入bean问题解决

    @Component public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext ...

    00000032_bean-resource的用法.rar

    与`@Autowired`注解不同,`@Resource`默认是按照名称来匹配依赖的,而`@Autowired`则是基于类型匹配的。 接下来,我们详细讲解`bean-resource`的使用步骤: 1. **定义Bean**:在XML配置文件中,通过`<bean>`标签...

    spring注解属性的用法

    本教程将深入探讨`@Resource`和`@Component`这两个核心注解的用法,以及它们在Spring MVC中的应用。 ### 1. `@Component`注解 `@Component`是Spring框架的核心注解,用于标记一个Java类为Spring管理的bean。当...

    spring3.x注解

    @Resource 注解的作用相当于 @Autowired,唯一的区别是 @Resource 默认按照名称匹配的方式(byName)进行注入。@Resource 有两个属性,name 和 type,分别用于指定 Bean 的名称和类型。 二、类的注册 在 Spring 3....

    Spring 中 @Service 和 @Resource 注解的区别

    除了@Service和@Resource,Spring还提供了一些其他常见的注解,包括@Controller(用于控制器,如Struts中的action)、@Repository(用于DAO层组件,数据访问组件)和@Component(通用注解,当组件类别不确定时使用)...

    关于spring boot中几种注入方法的一些个人看法

    @Autowired 的工作原理是,在启动 Spring IoC 时,容器自动装载了一个 AutowiredAnnotationBeanPostProcessor 后置处理器,当容器扫描到 @Autowired、@Resource 或 @Inject 时,就会在 IoC 容器自动查找需要的 bean...

    Java获取Spring中配置的Bean的三种方式

    `@Resource`注解与`@Autowired`类似,但它是JSR-250规范的一部分,其默认按名称进行装配。如果Bean有名字,可以用`@Resource`注解: ```java @Component public class MyClass { @Resource(name = "myBean") ...

    spring的Annotation注解.

    `@Autowired`、`@Qualifier`、`@Resource`和`@Component`等注解,都是Spring框架中不可或缺的一部分,它们共同构成了Spring框架强大的功能基础。理解并熟练掌握这些注解的使用,对于提升开发效率和代码质量具有重要...

    spring4框架系列 [ 5 ]

    本部分主要关注以下五个关键注解:`@Component`、`@Value`、`@Resource`、`@Autowired`以及生命周期方法注解`@PostConstruct`和`@PreDestroy`。 1. **`@Component`**:这个注解是Spring中的基础组件注解,用于标记...

    spring annotation注解

    Spring 框架提供了多种类型的注解,例如 @Autowired、@Resource、@Component 等。 1. 使用 Spring 注解来注入属性 在使用 Spring 框架之前,我们通常使用 setter 方法来注入属性,例如: Java 代码 ```java ...

    Spring应用注解完成属性装配

    `@Autowired`、`@Qualifier`、`@Value`、`@Configuration`、`@Component`和`@Resource`等注解协同工作,构建了一个灵活且强大的依赖注入系统。通过理解并熟练运用这些注解,开发者可以更高效地开发和管理Spring应用...

Global site tag (gtag.js) - Google Analytics