news 2026/9/2 14:52:19

Spring使用注解开发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring使用注解开发

Spring使用注解开发

在Spring4之后,要使用注解开发,必须要保证AOP的包导入了

bean如何注解

约束配置

<?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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--指定要扫描的的包,这个路径的下的包的类中注解就会生效--><context:component-scanbase-package="com.cike6"/><context:annotation-config/></beans>

要注解的类

// 等价于 <bean id="user" class="com.cike6.dao.User"/>// @Component 组件@ComponentpublicclassUser{publicStringname="cike_y";}

测试方法

publicclassspring_6_Test{@Testpublicvoidtest(){ApplicationContextcontext=newClassPathXmlApplicationContext("applicationContext.xml");Useruser=context.getBean("user",User.class);System.out.println(user.name);}}

属性如何注入

在对应属性上面加一个@Value 注解即可

@ComponentpublicclassUser{// 相当于 <property name="name" value="cike_y"/>@Value("cike_y")publicStringname;}

衍生的注解

@Component 有几个衍生注解,我们在web开发中,会按照mvc三层架构分层!都是组件的意思,只是名字不一样为了划分,功能一样

dao【@Repository】

- 一般dao层都会用这个注解

service【@Service】

- service层用这个注解

controller【@Controller】

- 控制层用这个注解
controller的案例
  • 如果找不到controller的容器id,我们还可以指定注解显示定义一个容器id名

使用bean注解的类,并且属性注入的注解方式

@Controller("usercontroller")publicclassUserController{@Value("aa")publicStringname;}

注解约束的xml配置

<?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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--指定要扫描的的包,这个包下的注解就会生效--><context:component-scanbase-package="com.cike6"/><context:annotation-config/></beans>

测试方法并且实例化容器id

@Testpublicvoidtest2(){ApplicationContextcontext=newClassPathXmlApplicationContext("applicationContext.xml");UserControllerusercontroller=context.getBean("usercontroller",UserController.class);System.out.println(usercontroller.name);}

可以看见成功输出 UserController类下的属性值name

这四个注解功能都是一样的,都是代表将某个类注册到Spring中,装配Bean

自动装配

@Autowired:自动装配通过类型。名字 如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value="xx") @Nullable 字段标记了这个注解,说明这个字段可以null @Resource 自动装配通过名字、类型

作用域

@Component@Scope("singleton")// 单例模式// 原型模式 @Scope("prototype")publicclassUser{// 相当于 <property name="name" value="cike_y"/>@Value("cike_y")publicStringname;}

小结

xml与注解:

  • xml更加万能,适用于任何场景!维护简单方便
  • 注解不是自己的类使用不了,维护相对复杂

xml与注解的最佳实践:

  • xml用来管理bean;
  • 注解之复杂完成属性的注入
  • 我们在使用的过程中,只需要注意一个问题:必须要注解生效就需要开启注解的支持、扫描包
<context:component-scanbase-package="com.cike6"/><context:annotation-config/>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 1:55:57

基于Simulink的直流无刷电机三闭环控制模型研究

直流无刷电机模型三闭环—simulink直流无刷电机&#xff08;BLDC&#xff09;这玩意儿搞控制的都知道&#xff0c;三闭环算是经典组合了。今天咱们直接开撸Simulink建模&#xff0c;顺便聊聊怎么把这几个环怼进去还能跑起来。先说清楚啊&#xff0c;仿真和实操肯定有差距&#…

作者头像 李华
网站建设 2026/8/29 2:39:33

论文重复率破解策略:AI驱动的6种改写技巧

写论文查重技巧排名&#xff1a;6大AI方法合集推荐 排名 工具/方法 核心优势 适用场景 1 aibiye 智能降重学术语言优化 初稿完成后深度润色 2 aicheck 多维度查重选题辅助 全程论文质量监控 3 秒篇 一键生成逻辑结构优化 紧急补论文初稿 4 AskPaper 文献解析…

作者头像 李华
网站建设 2026/8/29 2:40:28

AI赋能论文查重:6种智能改写方法对比分析

写论文查重技巧排名&#xff1a;6大AI方法合集推荐 排名 工具/方法 核心优势 适用场景 1 aibiye 智能降重学术语言优化 初稿完成后深度润色 2 aicheck 多维度查重选题辅助 全程论文质量监控 3 秒篇 一键生成逻辑结构优化 紧急补论文初稿 4 AskPaper 文献解析…

作者头像 李华
网站建设 2026/9/2 6:30:27

2026大专机械设计与制造专业必考证书清单(就业与薪资导向)

行业背景与证书重要性机械设计与制造行业对技术能力和资质认证要求较高&#xff0c;持有权威证书可显著提升就业竞争力。2026年行业趋势显示&#xff0c;智能制造、数字化设计等领域人才缺口大&#xff0c;相关证书持有者薪资普遍高于行业平均水平20%-30%。核心必考证书清单1. …

作者头像 李华
网站建设 2026/8/29 1:49:52

智能一卡通系统(门禁 / 梯控)出口英文版配置清单::系统需支持全英文界面(含管理后台、操作手册及协议文档),硬件需符合目标国电气标准。部署前需完成技术确认(认证/兼容性)、供应链备货(含10%冗余)

智能一卡通系统国际版部署核心要点检查清单智能一卡通系统&#xff08;门禁 / 梯控&#xff09;出口英文版配置清单产品类别中文名称英文名称品牌型号关键备注系统核心智能梯控一卡通系统Intelligent Elevator Access Control All-in-One Card System多奥DAIC-YKT-YWSF英文版适…

作者头像 李华
网站建设 2026/8/29 2:42:39

MATLAB电力系统双杀:短路计算与潮流设计的暴力美学

基于MATLAB的电力系统短路计算和潮流设计。 学长已经通过答辩&#xff0c;无任何问题&#xff5e; 程序代码简单易懂&#xff0c;注释清晰&#xff0c;一个小时即可理解。电力系统仿真总让人头秃&#xff1f;咱们今天来瞅瞅MATLAB里怎么用不到200行代码搞定短路计算和潮流设计。…

作者头像 李华