Spring框架@Resource注解详解与实战
创作时间:
作者:
@小白创作中心
Spring框架@Resource注解详解与实战
引用
CSDN
1.
https://m.blog.csdn.net/wochunyang/article/details/137639720
@Resource注解是Spring框架中用于自动装配bean的重要注解,遵循JSR-250标准。它支持字段、方法和方法参数级别的依赖注入,是开发Spring应用时不可或缺的工具。本文将从源码层面深入解析@Resource注解的各个属性,并通过实际代码示例展示其具体应用场景。
@Resource注解介绍
@Resource注解是一个JSR-250标准注解,用于自动装配(autowiring)Spring容器中的bean。它可以用于字段、方法和方法参数上,以声明依赖注入。
@Resource注解源码
@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
@Repeatable(Resources.class)
public @interface Resource {
String name() default "";
String lookup() default "";
Class<?> type() default java.lang.Object.class;
enum AuthenticationType {
CONTAINER,
APPLICATION
}
AuthenticationType authenticationType() default AuthenticationType.CONTAINER;
boolean shareable() default true;
String mappedName() default "";
String description() default "";
}
@Resource注解属性介绍
- name:资源的JNDI名称,装配指定名称的Bean。
- type:装配指定类型的Bean。
- lookup:引用指向的资源名称,可以使用JNDI名称指向任何兼容的资源。
- AuthenticationType:指定身份验证类型。
- shareable:指定当前Bean是否可以在多个组件之间共享。
- mappedName:指定资源的映射名称。
- description:指定资源的描述。
@Resource注解使用场景
- 数据库连接池注入:在Java应用中,数据库连接池是一个常见的资源。使用@Resource注解可以将数据库连接池注入到需要使用数据库连接的类中。
- JNDI资源注入:Java Naming and Directory Interface(JNDI)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,如DNS、LDAP、NIS、CORBA对象服务等。使用@Resource注解可以将JNDI资源注入到JavaBean中。
- 事务管理器注入:在Java应用中,事务管理器是一个重要的资源。使用@Resource注解可以将事务管理器注入到需要进行事务管理的类中。
- 其他资源注入:除了上述资源外,@Resource注解还可以用于将其他类型的资源注入到JavaBean中,如文件资源、网络资源等。
@Resource注解测试示例代码
ResourceDemoService接口
package com.yang.SpringTest.annotation.resourceLean;
public interface ResourceDemoService {
void demo();
}
ResourceDemoServiceAImpl实现类
package com.yang.SpringTest.annotation.resourceLean;
import org.springframework.stereotype.Service;
@Service("resourceDemoServiceA")
public class ResourceDemoServiceAImpl implements ResourceDemoService {
@Override
public void demo () {
System.out.println ("===== ResourceDemoServiceAImpl.demo...");
}
}
ResourceDemoServiceBImpl实现类
package com.yang.SpringTest.annotation.resourceLean;
import org.springframework.stereotype.Service;
@Service("resourceDemoServiceB")
public class ResourceDemoServiceBImpl implements ResourceDemoService {
@Override
public void demo () {
System.out.println ("===== ResourceDemoServiceBImpl.demo...");
}
}
ResourceDemoController控制器
package com.yang.SpringTest.annotation.resourceLean;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
@Controller
public class ResourceDemoController {
@Resource(name = "resourceDemoServiceB")
private ResourceDemoService resourceDemoService;
public void demo () {
resourceDemoService.demo ();
}
}
ResourceDemoConfig配置类
package com.yang.SpringTest.annotation.resourceLean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(value = {"com.yang.SpringTest.annotation.resourceLean"})
public class ResourceDemoConfig {
}
ResourceDemoTest测试类
package com.yang.SpringTest.annotation.resourceLean;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.util.Arrays;
public class ResourceDemoTest {
public static void main (String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext (ResourceDemoConfig.class);
String[] definitionNames = context.getBeanDefinitionNames ();
Arrays.stream (definitionNames).forEach ((definitionName) -> System.out.println (definitionName));
System.out.println ("--------------------");
ResourceDemoController resourceDemoController = context.getBean (ResourceDemoController.class);
resourceDemoController.demo ();
context.close ();
}
}
运行结果
热门推荐
《乌合之众》:人在群体中智商会降低,要想保持清醒,请牢记这三条!
管理咨询项目怎么选专业
GDP是什么意思?国内生产总值的含义与重要性
餐桌上的健康小贴士:粗粮怎么吃才健康?
世界粮食日:关注粗粮,呵护健康
中药退热的方子
百亿哪吒背后的动画新王光线:如何重塑动画电影“肉身”
胃不好的人群应该避免食用哪些食物?
《资治通鉴》:商鞅的变法与改革:从卫鞅到商君的传奇人生
商鞅被车裂:变法成功的代价还是失败的象征?
人工智能时代,高职教育纷纷布局
王好古的师承及其在中医史上的地位
张学良晚年回忆父亲张作霖:他是个好父亲,比我聪明,也比我厉害
张作霖制定了10条家规,结果夫人成尼姑,妻弟被枪决
16管是几分管?管道规格详解与应用指南
如何评估和应对股票减持的影响
为什么有的孩子没朋友?培养孩子的社交能力,这5件事很关键
快手与B站,哪个平台更适合短视频创作者?
星星:塔罗牌中的沉思光芒
经常紧张、害怕、恐惧、担心,你可能患上了焦虑障碍
除了不能马上飞行,你还知道哪些潜水后不能做的事情?
表面间隔:重要性以及如何最大化它
柿子醋的功效与作用
如何面对多愁善感的情绪(降低情绪负荷)
晚上几点睡对减肥有帮助
荞麦面的营养价值与减肥效果:真相揭秘
黄膘牛排的魅力:冬季草原美味,让健身爱好者和美食家都无法抵挡
成语“翻手云覆手雨”详解
《千里江山图》:千年文化与历史的交织画卷
南宁市依托生态优势大力发展生态康养旅游