news 2026/6/25 7:30:34

(24)使用的注解的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(24)使用的注解的方法

如何使用以上的注解呢?

  • 第一步:加入aop的依赖(已经包在context包里面)
  • 第二步:在配置文件中添加context命名空间
  • 第三步:在配置文件中指定扫描的包
  • 第四步:在Bean类上使用注解

第一步:加入aop的依赖
我们可以看到当加入spring-context依赖之后,会关联加入aop的依赖。所以这一步不用做。

第二步:在配置文件中添加context命名空间

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"></beans>

第三步:在配置文件中指定要扫描的包

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scanbase-package="com.powernode.spring6.bean"/></beans>

第四步:在Bean类上使用注解

packagecom.powernode.spring6.bean;importorg.springframework.stereotype.Component;@Component(value="userBean")publicclassUser{}

编写测试程序:

packagecom.powernode.spring6.test;importcom.powernode.spring6.bean.User;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassAnnotationTest{@TestpublicvoidtestBean(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext("spring.xml");UseruserBean=applicationContext.getBean("userBean",User.class);System.out.println(userBean);}}

如果注解的属性名是value,那么value是可以省略的。

packagecom.powernode.spring6.bean;importorg.springframework.stereotype.Component;@Component("vipBean")publicclassVip{}
packagecom.powernode.spring6.test;importcom.powernode.spring6.bean.Vip;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassAnnotationTest{@TestpublicvoidtestBean(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext("spring.xml");VipvipBean=applicationContext.getBean("vipBean",Vip.class);System.out.println(vipBean);}}

如果把value属性彻底去掉,spring会被Bean自动取名吗?会的。并且默认名字的规律是:Bean类名首字母小写即可。

packagecom.powernode.spring6.bean;importorg.springframework.stereotype.Component;@ComponentpublicclassBankDao{}

也就是说,这个BankDao的bean的名字为:bankDao
测试一下

packagecom.powernode.spring6.test;importcom.powernode.spring6.bean.BankDao;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassAnnotationTest{@TestpublicvoidtestBean(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext("spring.xml");BankDaobankDao=applicationContext.getBean("bankDao",BankDao.class);System.out.println(bankDao);}}

我们将Component注解换成其它三个注解,看看是否可以用:

packagecom.powernode.spring6.bean;importorg.springframework.stereotype.Controller;@ControllerpublicclassBankDao{}

剩下的两个注解大家可以测试一下。
如果是多个包怎么办?有两种解决方案:

  • 第一种:在配置文件中指定多个包,用逗号隔开。
  • 第二种:指定多个包的共同父包。

先来测试一下逗号(英文)的方式:
创建一个新的包:bean2,定义一个Bean类。

packagecom.powernode.spring6.bean2;importorg.springframework.stereotype.Service;@ServicepublicclassOrder{}

配置文件修改:

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scanbase-package="com.powernode.spring6.bean,com.powernode.spring6.bean2"/></beans>

测试程序:

packagecom.powernode.spring6.test;importcom.powernode.spring6.bean.BankDao;importcom.powernode.spring6.bean2.Order;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassAnnotationTest{@TestpublicvoidtestBean(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext("spring.xml");BankDaobankDao=applicationContext.getBean("bankDao",BankDao.class);System.out.println(bankDao);Orderorder=applicationContext.getBean("order",Order.class);System.out.println(order);}}

我们再来看看,指定共同的父包行不行:

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scanbase-package="com.powernode.spring6"/></beans>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 17:18:59

ReClassEx内存分析终极指南:从入门到实战精通

在逆向工程和软件安全分析领域&#xff0c;内存分析是不可或缺的核心技能。本文将带你深度解析开源内存分析工具ReClassEx的实战应用&#xff0c;帮助开发者快速掌握这一强大工具的使用技巧。 【免费下载链接】ReClassEx ReClassEx 项目地址: https://gitcode.com/gh_mirrors…

作者头像 李华
网站建设 2026/6/25 1:00:36

21、网络路由与安全远程管理技术全解析

网络路由与安全远程管理技术全解析 在网络管理和安全领域,有许多实用的工具和技术可以帮助我们更好地管理网络和保障远程访问的安全。下面将为大家详细介绍 Quagga 路由守护进程的相关操作、RIPD 和 OSPFD 的监控方法、路由黑洞设置、OSPF 动态路由的使用、RIP 和 OSPF 的安全…

作者头像 李华
网站建设 2026/6/19 11:32:16

52、网络故障排除、参考资料与术语详解

网络故障排除、参考资料与术语详解 1. 网络配置与故障排除 在网络配置中,源、目标和过滤语句可以使用任意名称。例如,源 s_local 可以是 source local 或 source fred 等。虽然有使用 s_ 表示源语句、 d_ 表示目标语句的约定,但这并非强制要求。 不同 Linux 发…

作者头像 李华
网站建设 2026/6/25 19:18:59

56、Linux内核构建与网络配置全解析

Linux内核构建与网络配置全解析 1. 新增可加载内核模块 在Linux系统中,添加新的可加载内核模块是一项常见且重要的操作。以下是详细的步骤: 1. 切换到包含构建树的目录,例如: cd ~/kernel/linux-2.6.20.1准备一个最新的配置文件,并将其复制到构建树的顶级目录,然后运…

作者头像 李华
网站建设 2026/6/25 5:31:26

将 Graph RAG 投入生产——逐步指南

原文&#xff1a;towardsdatascience.com/graph-rag-into-production-step-by-step-3fe71fb4a98e?sourcecollection_archive---------0-----------------------#2024-09-23 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/203dbf1037dad1…

作者头像 李华
网站建设 2026/6/24 23:05:01

GLAD:谐振腔的优化设计

概述利用GLAD的优化功能&#xff0c;谐振腔命令可以对谐振腔的各个参数进行优化设计。整个设计分为两个过程&#xff1a;首先&#xff0c;利用“resonator/test”和“resonator/set”命令对给定腔镜参数的谐振腔确定腔内本征模的尺寸。然后利用GLAD的优化功能针对特殊的谐振腔参…

作者头像 李华