`
dannyhz
  • 浏览: 394672 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

spring中何时用resource 和 service

 
阅读更多
引用


Spring中什么时候用@Resource,什么时候用@service

当你需要定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于讲这个类定义为一个bean,bean名称为XXX;

当需要在某个类中定义一个属性,并且该属性是一个已存在的bean,要为该属性赋值或注入时在该属性上一行使用@Resource(name="xxx"),相当于为该属性注入一个名称为xxx的bean。

===================================================================================================

Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。
  @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
  @Resource装配顺序
  1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

分享到:
评论

相关推荐

    详解Spring注解--@Autowired、@Resource和@Service

    Spring注解详解 -- @Autowired、@Resource和@Service ...@Autowired、@Resource和@Service都是Spring框架中最常用的注解,它们可以帮助我们解决依赖注入问题,减少配置文件的体积和复杂度,提高开发效率和代码可读性。

    spring中Resource和Component注解

    在Spring框架中,`@Resource`和`@Component`是两个非常重要的注解,它们用于不同的目的,但都与依赖注入(Dependency Injection, DI)息息相关。这篇文章将深入探讨这两个注解,以及它们如何在Spring应用中协同工作...

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

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

    详解Spring关于@Resource注入为null解决办法

    3. 在 Service 层中,使用 @Resource 注解的方式来创建 DAO 对象,而不是使用 new 关键字来创建对象。 四、实践经验 在实际开发中,我们经常会遇到各种问题,例如,@Resource 注解的对象为 null 等问题。解决这些...

    Spring In Action 使用@Autowired 和@ Resource 自动装配Bean

    在Spring配置中,我们可以通过`@Configuration`和`@Bean`进一步定制Bean的创建和装配过程,与`@Autowired`和`@Resource`配合使用,实现更加灵活的依赖注入。 总之,`@Autowired`和`@Resource`都是Spring框架中的...

    整理xfire和spring的集成 web service 面向服务编程 java

    【整合XFire与Spring进行Web ...创建专门管理XFire的配置文件`spring.xfire.xml`,在这个文件中,定义Web Service的服务端点、绑定和行为。例如,注册`UserService`接口的实现,并配置到Web Service中: ```xml ...

    Spring Cloud Eureka Service Provider

    Spring Cloud Eureka Service Provider是构建在Spring Cloud框架上的服务发现解决方案,结合了Eureka和Jersey,实现了服务的自动注册、服务发现和RESTful API的提供。它大大简化了微服务架构中的服务管理和通信,...

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

    7. **配置类和@ComponentScan**: 在Spring 3.0引入的@Configuration注解的类中,可以结合@ComponentScan一起使用,这样就不再需要XML配置文件,实现了全注解配置。 8. **工具支持**: 使用IDE如IntelliJ IDEA或...

    spring2.5中文文档

    Spring框架是Java开发中不可或缺的一部分,它以其模块化、易用性和灵活性著称。Spring 2.5版本是该框架的一个重要里程碑,引入了许多新特性并优化了已有的功能。以下是对Spring 2.5中文文档的主要内容进行的详细解释...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring中集合类型的装配

    总的来说,Spring中集合类型的装配是一个强大的特性,它增强了Spring容器的灵活性,使得我们可以方便地管理和组合多个bean,极大地提高了代码的可维护性和可扩展性。无论是通过XML配置还是注解方式,Spring都为我们...

    Spring 3.x 中文开发手册.pdf

    Spring 3.x 还引入了属性抽象层,这使得开发者可以在配置文件中使用占位符(placeholder),从而减少因环境变化而频繁更改配置文件的需求。例如,可以使用 `<import resource="${JAVA_HOME}/com/bank/service/${env}...

    Spring3.0中Annotion实例

    2. **组件扫描(Component Scanning)**:使用`@Component`、`@Service`、`@Repository`和`@Controller`这些元注解,Spring可以自动发现并注册bean。这些注解分别用于标记普通的bean、服务层bean、数据访问层bean和...

    Spring5.0中文开发手册

    - 介绍了如何管理和配置Spring应用程序中的依赖关系,以及推荐的命名约定。 - **1.2.3.2 Logging 日志** - 描述了如何配置和使用日志框架与Spring一起工作。 #### 二、核心技术 ##### 3.1 Spring IoC容器和bean...

    struts2+spring+hibernate整合中spring注入出错。页面中报空指针异常。高手来看看怎么决绝。

    在Java Web开发中,Struts2、Spring和Hibernate是三个非常流行的开源框架,它们分别用于MVC(模型-视图-控制器)架构、依赖注入和持久化层管理。当这三个框架进行整合时,可以实现强大的功能,但也可能出现各种集成...

    spring3.x注解

    在 Spring 3.x 中,提供了两种用于属性装配的注解:@Autowired 和 @Resource。 1. @Autowired @Autowired 注解用于自动装配依赖项,默认按照类型匹配的方式(byType)进行注入。可以用于成员变量、setter 方法、...

    真正的中文Spring2.5 API 兴奋!

    `@Autowired`自动匹配类型,`@Resource`则基于名称进行匹配,而`@Component`及其衍生注解(如`@Service`、`@Repository`和`@Controller`)用于定义组件,使代码更具有声明性。 在AOP(面向切面编程)方面,Spring...

    Spring相关编码规范

    - 不要在`action.xml`和`service.xml`文件中添加action和service的相关配置,以减少重复和维护负担。 遵循这些编码规范,可以使Spring应用的结构更加清晰,易于理解和维护。同时,规范的使用也有助于团队成员之间...

    Java EE 框架整合 开发入门到实战-Spring+Spring MVC+MyBatis微课版复习笔记

    Spring、Spring MVC和MyBatis是Java EE中最受欢迎的框架之一。这些框架的整合使用广泛用于构建企业级应用。下面将详细介绍这些框架的核心概念、模块组成、实例化Bean的方式以及依赖注入的机制和优势。 Spring框架...

Global site tag (gtag.js) - Google Analytics