Spring容器的依赖注入注解

Spring——注解驱动和包扫描的配置对依赖注入的作用 一、Spring和Springmvc的注解驱动 Spring或Springmvc框架中要使用注解,需要配置注解驱动。 <!--mvc的注解驱动--> <mvc:annotation-driven/> 阅读详情

1、bean

package DI_Annotation;

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

import javax.annotation.Resource;
import javax.lang.model.element.Name;

/**
 * Created by Administrator on 2019/6/1.
 */
public class Person {
    @Resource(name = "student")
//    @Autowired 按照类型匹配
//    @Qualifier("student") 按照name匹配
    private Student student;

    public Student getStudent() {
        return student;
    }
}

2、bean

package DI_Setting;

import org.springframework.stereotype.Component;

/**
 * Created by Administrator on 2019/5/29.
 */
public class Student {
    public void say() {
        System.out.println("你好学生!");
    }
}

3、ApplicationContext.xml【开启依赖注入注解解析器】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <bean name="person" class="DI_Annotation.Person"></bean>
    <bean name="student" class="DI_Setting.Student"></bean>

    <!--启动依赖注入的注解解析器-->
    <context:annotation-config></context:annotation-config>
</beans>

4、单元测试

package DI_Annotation;

import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AnnotationTest {
    @Test
    public void testAnnotation() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("DI_Annotation/DI_Annotation.xml");
        Person person = (Person) context.getBean("person");
        person.getStudent().say();
    }
}

5、输出
你好学生
6、解释说明
/**

  • 原理
  • 1、当启动Spring容器的时候,创建两个对象
  • 2、当Spring容器解析到
  • context:annotation-config</context:annotation-config>
    Spring容器会在Spring容器管理的bean的范围内查找这些类的属性上面是否加了 @Resource注解
    3、Spring解析 @Resource注解的name属性
    如果name值为“”
    说明该注解根本没有写name属性
    Spring容器会得到该注解所在的属性的名称和Spring容器中的id进行匹配,如果匹配成功,进行赋值
    如果匹配不成功,则按照类型进行赋值
    如果name属性的值不为“”
    则按照name的值,和Spring的ID匹配,如果匹配成功,则赋值,不成功,则报错
    4/!!!注解只适用于 引用类型!!!!!!!!!
    注解写法简单,但是效率比较低
    xml写法复杂,但是效率比较高
    */
spring框架中什么注解是将类注入到spring容器中 除了上述常用的注解,还有其他的注解可供选择,并且你也可以自定义注解来实现将类注入到Spring容器中。需要注意的是,为了让Spring容器能够扫描到被注解的类,你需要在配置文件或者使用@ComponentScan注解指定要扫描的包路径。这些注解都是Spring中的扫描注解,用于将被注解的类自动扫描并注册到Spring容器中。在使用其中任何一个注解后,类的实例将会由Spring容器进行创建和管理。@Component注解:用于将普通的Java类标记为一个可被Spring容器管理的组件。 阅读详情

相关推荐

intel-VROC raid卡驱动 centos7.9

u盘进入系统,按e,在出现下面在quiet前面输入inst.dd initcall_blacklist=vmd_drv_init 后按Ctrl和x,开始引导。进入系统,按e,在出现下面在quiet前面输入inst.dd inicll_blacklist=vmd_drv_init 后按Ctrl和x,开始引导。驱动完成后,在输入 c 回车, 引导过程开始,进入安装界面。输入1 ,选择这个ISO驱动文件里的rpm包。输入1 ,选择这个ISO驱动文件里的rpm包。vi编辑 /etc/default/grub。

dacming的博客 4546

spring注解

因为在持久层、业务层和控制层中,分别采用@Repository、@Service和@Controller对分层中的类进行凝视,而用@Component对那些比较中立的类进行凝视。 spring注解中@component就是说把这个类交给Spring管理,又一次起个名字叫userManager,因为不清楚这个类是属于哪个层面,所以就用@Component。 spring注解的作用: 1、sprin...

qq_37924509的博客 597

别再只盯着版图画了!聊聊CMOS工艺里那个‘看不见的手’:STI应力(LOD效应)对模拟电路的实际影响

本文深入探讨了CMOS工艺中STI应力(LOD效应)对模拟电路设计的实际影响,揭示了这一隐形变量如何导致电流镜匹配偏差等常见问题。通过分析应力产生的物理机制、空间分布特性,以及提供伪器件设计、版图布局优化等实用解决方案,帮助工程师有效管理STI应力效应,提升电路性能。文章还探讨了FinFET工艺下的新挑战及机器学习在应力优化中的应用前景。

weixin_42656416的博客 360

Spring常用注解(绝对经典),全靠这份Java知识点PDF大全

@Bean public ColorFactoryBean colorFactoryBean(){ return new ColorFactoryBean(); } //创建一个spring定义的FactoryBean public class ColorFactoryBean implements FactoryBean { //返回一个Color对象,并将Color添加到容器中 public Color getObject() throws Exception { System.out.println(

m0_65321095的博客 1万+

Golang实现企业级AI智能体安全合规自动化检测系统

需求:自动化解析欧盟AI法案、中国网络安全法、美国NIST框架等多国法规,提取具体合规要求并映射到企业技术实现。技术挑战法规文本非结构化,语义复杂,存在大量法律术语与技术术语交叉多语言支持(中文、英文、欧盟24种官方语言)法规动态更新(平均每季度更新2-3次)架构创新性:提出了"规则引擎+AI模型+实时监控"的混合架构,兼顾了合规要求的明确性与智能体行为的动态性。性能突破:通过Golang协程、多级缓存、数据库优化等技术,实现了12,800 req/s的高吞吐量和38ms的低延迟。准确性提升。

shao.bing的专栏 725

Photoshop实战技巧(9)——高效去除复杂水印的五种进阶方法

本文详细介绍了Photoshop中高效去除复杂水印的五种进阶方法,包括色阶通道爆破法、频率分离高阶应用、智能填充+手动修复组合拳等专业技巧。针对半透明水印、密集文字水印等复杂场景,提供分步操作指南和实战案例,帮助用户精准去除水印同时保留原始图像细节,大幅提升工作效率。

cake8的博客 963

Spring使用注解进行注入

Spring使用注解进行注入的几种方式

x2656271356的博客 1616

基于ZYNQ PL的AD7606数据采集与FFT实时频谱分析:从硬件到创新实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKnmpgJm-1750295287594)(https://example.com/fft_plot.png)]本文涉及代码已在Xilinx ZCU102开发板与AD7606评估板上验证通过,采样率支持200KSPS@8通道,FFT计算延迟<1ms。传统MCU+DSP方案难以兼顾速度与功耗,而ZYNQ的PL+PS架构为这一问题提供了完美解决方案。本文实现的ZYNQ PL方案突破了传统处理器的性能瓶颈,通过。

QQ_778132974的博客 340

spring(1)

概念 1.Spring框架是一个开放源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器 (知识点: 1. J2SE 基础的java语法 2. J2EE JAVA企业级开发 3. J2ME 移动端java开发 手机QQ java写的!!! 4.bean: 由Spring容器管理的对象称之为bean!!! 5.轻量级: 使用spring容器的方式简单/操作便捷. 6.容器: Spring在内存中开辟了一大块空间,用来管理对象.) 2.IOC介绍 Ioc全称In...

qq_56895799的博客 692

【C2000系列DSP的Bootloader详解】如何打包源文件为库文件且加密仅授权使用,一步步教你如何实现

如果想要在 TI 的 CCS 开发环境中为 C2000 系列 MCU 生成 lib 库文件,并对这些库文件进行加密保护,确保只有授权方(持有密钥)才能调用和使用,以此保护源代码的知识产权。

昔时扬尘处 177

K8s-K8s部署Zookeeper+Kafka+ELFK+持久化数据

K8s环境下容器化部署`Zookeeper+Kafka+ELFK`日志收集系统

✅ 专注企业级 Linux/DevOps 运维的实战派 ✅ 已输出上百篇可落地方案 ✅ Shell 脚本开箱即用 ✅ K8s/YAML 环境验证 ✅ 故障排查链路完整复现 1917

Spring-注解开发、核心容器、注解开发依赖注入

加油

Eliaukgit的博客 1213

华为OD机试双机位C卷-AI面板识别(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 AI面板识别,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解以及在线OJ模拟做题。华为OD机试 - AI面板识别。

qq_45776114的博客 1343

(2)-Spring的Bean管理,IOC容器,依赖注入的一些方式,注解配置

上一篇阐述了Spring相关的一些概念,入门内容Spring是什么?能做什么?为什么要学?优点与是什么?来入门吧 这一篇是关于Spring Bean管理的 IOC容器 工厂只负责创建对象,而Spring当然不仅仅是一个对象工厂,其核心是一个对象容器,其具备控制反转的能力,所以也称为IOC容器。 帮助我们存放对象,并且管理对象,包括:创建、销毁、装配,这样就将原本由程序自己完成的工作,交给了框架来完成,称为IOC容器。 学习的核心也就在于如何将对象放在Spring中,以及如何从Spring中取出来。 Spri

cx-young的博客 299

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring容器之注解实现依赖注入

1. 注解版的自动注入 ByType类型绑定 注解@autowired 比起配置文件更灵活,可以应用于域和所有方法,比如: public class EE { ... } public class EX { @Autowired private EE ee; /*@Autowired public EX(EE ee) { this.ee==ee; } */ /*@...

gentle_zhang的博客 357

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring 容器创建 依赖注入 web整合 注解使用

知道为什么这样做 ,以及这样做的好处Spring 介绍 Spring 容器就是用来创建bean对象的容器,对象从Spring容器中获得, 有两大特性 IOC AOP 1. Spring容器的创建1.1.1 搭建开发环境jar包导入,添加约束 <!-- jdk 1.8 --> <build> <plugins> <!-- maven的编译插件,用于指

Change the World by Program 391

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring学习入门:IoC、DI、bean配置和实例化、依赖注入、容器、注解开发、AOP、整合MyBatis、事务...【建议收藏】

全面讲解Spring基础技术,适合新手入门:IoC、DI、bean配置和实例化、依赖注入、容器、注解开发、AOP、整合MyBatis、事务....

RuanFun的博客 877

Spring之IoC容器:通过注解的方式实现依赖注入

tt

weixin_42717117的博客 599

Spring 注解详解:从容器配置到依赖注入的最佳实践

本文系统介绍了Spring框架中的核心注解及其最佳实践。主要内容包括:1)基于注解的容器配置方法,如@ComponentScan和@Configuration;2)组件声明注解(@Component、@Service等)的使用场景与区别;3)依赖注入的三种方式及推荐方案(构造器注入优先);4)常见问题如NoSuchBeanDefinitionException、循环依赖的解决方案;5)开发中的最佳实践与注意事项。文章强调理解注解原理的重要性,避免滥用注解导致潜在问题,为开发者提供了从基础使用到进阶技巧的完整

刘一说的IT专栏 1726

ioc容器的实现方法有哪些_Spring复习大纲:依赖注入Ioc+Beans+注解+数据访问+AOP+MVC等...

作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下吧。。。01 一般问题1.1. 不同版本的 Spring Framework 有哪些主要功能?1.2. 什么是 Spring Framework?1.3. 列举 Spring Framework 的优点1.4. Spring Framework 有哪些不同的功能?1.5. Spring Framewo...

weixin_39978749的博客 84

终于不是单学API啦, 基于 [Java基础 反射 注解 动态代理] 自己实现简单的Spring容器(上) 功能 : (IOC , 依赖注入)

基于Java基础,反射,注解,动态代理实现Spring容器

m0_62547912的博客 456

Spring IOC容器、Bean对象(基于XML和注解的配置)、依赖注入DI

先通过工厂模式解耦和控制反转的概念引出Spring的IOC容器 工厂模式解耦 提前将程序所需要的对象信息配置在配置文件中,程序最初运行的时候,利用一个类(工厂类)读取配置文件,把这些对象创建出来并保存(保存在容器中)。程序的其他地方需要用某个对象的时候,这容器中取这个对象即可。工厂类负责读取配置文件、创建并保存对象、提供获取对象的方法Object getBean(id)。 控制反转IOC(In...

IT_10的博客 1192

【Spring】:IOC容器通过 Java 注解和 Java 代码方式依赖注入

2.4、 Bean的自动装配 自动装配是Spring满足bean依赖的一种方式,会在上下文中自动的寻找,并自动给bean装配属性。是通过autowire属性进行设置的,其中两个属性值如下: byName:会自动在容器上下文中查找,和自己对象set方法后面的值对应的bean的id。需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致! byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean,但是一种属性只能有一个对象,否则spring容器无法进行识别.

悦.L的博客 502

spring6-IOC容器

IOC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。

m0_62946761的博客 3284

请你谈谈以下问题:DI和IOC?BeanFactory 和 ApplicationContext联系与区别?Spring如何设计容器?依赖注入方式?bean的生命?Spring注解的介绍?

1介绍一下Spring依赖注入和控制翻转 IOC:它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理;Spring 中的 IoC 的实现原理就是工厂模式加反射机制; 2BeanFactory 和 ApplicationContext有什么区别? BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。BeanFactory:是Spri

一个搬砖工人 345

Spring依赖注入

Spring入门

2302_80077862的博客 868
上一篇: 遍历HashMap的四种方法
下一篇: Spring容器类扫描注解
JSON_ZJS
博客等级 码龄9年 30粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值