【问题标题】:Working of Resource Injection @Resource and Spring Framework?资源注入@Resource 和 Spring 框架的工作原理?
【发布时间】:2016-04-25 11:28:59
【问题描述】:

我想了解注释的工作原理。我有这段代码,我在一个简单的 Spring 项目中使用过。

@Resource(name="dataSource")
private DataSource dataSouce;

我在 XML 配置文件中定义的数据源:

<!-- The Apache DBCP implementation of DataSource -->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <property name="driverClassName" value="org.h2.Driver"/>
        <property name="url" value="jdbc:h2:tcp://localhost/~/test"/>
        <property name="username" value="sa"/>
        <property name="password" value=""/>
    </bean>

spring xml配置文件中的其他sn-p

    <context:annotation-config /> <!-- This enables the annotation's actions, else annotations don't do their work. -->
    <context:component-scan base-package="com.example.dao.jdbc.impl"/> <!-- This is for component scan -->
    <bean id="jdbcOperImpl" class="com.example.dao.jdbc.impl.JdbcOperImpl"/>

据我了解,资源注释来自javax.annotation.Resource。我查看了它的source code,注意到注解是由JDK SE 定义的,它只是一个注解的简单定义。这是如何进行注射的? Spring Framework 是否使用此注解并进行注入? @Resource注解和Spring框架有什么关系?

【问题讨论】:

  • 你到底在问什么?这个问题很可能过于宽泛或重复。
  • “Spring Framework 是否使用此注解并进行注入?” 是的,如果不是所有注解,大多数注解只是简单的标记,为处理它们的单元携带信息。
  • @OrangeDog:这个问题与您暗示的问题不重复。我在问 Resource 如何注入依赖项。我查看了 Resouce 注释的源代码,该代码中没有什么特别之处可能会注入依赖项。我在问 Resouce 和 spring 框架在注入依赖项时有什么关系(这两者究竟是如何一起工作来注入依赖项的)
  • 这个问题是 Spring 特有的,正是您要问的。正如我建议的第一个问题所说,Resource 在这方面与Autowired 和Inject 的工作方式相同。

标签: spring dependency-injection annotations


【解决方案1】:

实际上 Spring 支持两种类型的注解,即基于 Spring 的注解和基于 Java 的注解。对于依赖项,您可以使用完全弹出注释的@Autowired。

@Resource 和@Inject 是标准的基于java 的注解。为了更清楚,请参阅此链接http://blogs.sourceallies.com/2011/08/spring-injection-with-resource-and-autowired/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 2011-05-21
    • 2011-08-30
    • 1970-01-01
    • 2021-02-06
    • 2012-08-16
    • 2012-10-02
    相关资源
    最近更新 更多