news 2026/9/22 5:17:45

(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/9/22 1:18:30

AndroidGen-GLM-4-9B:开启移动智能体新时代的革命性突破

AndroidGen-GLM-4-9B&#xff1a;开启移动智能体新时代的革命性突破 【免费下载链接】androidgen-glm-4-9b 项目地址: https://ai.gitcode.com/zai-org/androidgen-glm-4-9b 2025年4月&#xff0c;智谱AI正式发布基于GLM-4-9B大模型的AndroidGen开源版本&#xff0c;标…

作者头像 李华
网站建设 2026/9/21 13:59:56

微服务架构下的分布式数据加密:SQLCipher实战指南

在微服务架构日益普及的今天&#xff0c;数据安全已成为每个技术团队必须直面的挑战。你是否曾为分布式环境下的数据加密而头疼&#xff1f;多个服务节点间的密钥同步、跨服务数据传输加密、性能损耗控制等问题往往让开发者望而却步。本文将通过SQLCipher加密库&#xff0c;为你…

作者头像 李华
网站建设 2026/9/21 23:38:29

16、搭建 Asterisk VoIP 服务器全攻略

搭建 Asterisk VoIP 服务器全攻略 1. 配置与测试 首先,我们需要进行一系列的配置和测试工作。以下是相关的配置参数: format=wav49 skipms=3000 maxsilence=10 silencethreshold=128 maxlogins=3 [local-vm-users] ;mailbox number, password, username 250 => 1234,E…

作者头像 李华
网站建设 2026/9/20 16:20:04

Apache Mesos集群运维实战:故障恢复与版本管理完全指南

Apache Mesos集群运维实战&#xff1a;故障恢复与版本管理完全指南 【免费下载链接】mesos Apache Mesos 项目地址: https://gitcode.com/gh_mirrors/mesos2/mesos 在现代分布式系统中&#xff0c;Mesos集群维护是确保业务连续性的关键环节。本指南将深入解析Mesos集群运…

作者头像 李华
网站建设 2026/9/19 23:24:33

探索式测试的Session管理法:提升软件测试效率与可追溯性

探索式测试作为一种强调测试者自主性与创造性的软件测试方法&#xff0c;在快速迭代的现代开发环境中日益重要。然而&#xff0c;其非结构化的特性可能导致测试过程难以追踪和评估。Session管理法应运而生&#xff0c;它通过引入时间盒&#xff08;Time-boxed&#xff09;会话和…

作者头像 李华