news 2026/5/12 8:02:48

Spring学习日记——DAY03(注解注入处理)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring学习日记——DAY03(注解注入处理)

今天针对Spring框架中的注解注入操作进行学习,学习内容如下:

1.在类上的注解

@Component

代表是Spring容器中的组件,具有一个value属性,用于设置组件的id

@Service

也代表是Spring容器中的组件,常用于Service层,value属性与Component一致

@Repository

也代表是Spring容器中的组件,常用于持久层(DAO),value属性与Component一致

@Controller

也代表是Spring容器中的组件,常用于Control层,value属性与Component一致

2.在属性上的注解

@Value:主要是在应用在基本数据类型和字符串上的赋值,有一个value属性,是String类型

@Value("王五") private String name ; @Value("20") private int age ;

可以在applicationContext.xml文件时,引入properties文件来配置,集中管理数据

<context:property-placeholder location="classpath:config.properties"> </context:property-placeholder>
@Value("${bean.name}") private String name ; @Value("20") private int age ;

@AutoWired

引用类型注入,支持byName,byType。默认情况,使用byType自动注入,如果要使用byName的方式进行注入则需要用到@Qualifier标签进行指定id,且一般情况下更推荐@AutoWired用于构造方法

@Autowired public Student(@Qualifier("tea") Teacher teacher,@Value("小芳") String name) { this.teacher = teacher; this.name = name; }

这里面的情况下,需要把@Qualifier放在参数列表中;

@Resource

是由jdk提供的注解,并且在较高版本的jdk已经将他移除标准库了,也是自动注入处理,但是默认是byName,如果说ByName失败就自动转为ByType

区别:

@AutoWired默认情况下是按类型装配,要求依赖对象必须存在,不存在则出现空指针异常,但是可以通过属性required=false,则可以为空。如果需要byName装配,则结合@Qualifier注解一起使用。

@Resource默认情况下,使用byName装配,当找不到名称匹配的bean,再使用byType装配。有一个name属性,作为byName装配的名称,还有type属性,作为byType装配的名称。

使用@AutoWired做注入时,会产生一个警告,并建议使用构造方法注入;

3.多文件配置

可以创建多个xml文件,比如说有service.xml和repository.xml然后可以在一个汇总的xml文件比如说

main.xml文件中,通过import标签进行配置,然后在容器入口导入总的main.xml的参数就好了

<!--直接写文件名的引用--> <!-- <import resource="classpath:springConfig/applicationContext_dao .xml"></import> <import resource="classpath:springConfig/applicationContext_service .xml"></import>-- > <!--使用通配符的引用--> <import resource="classpath:springConfig/applicationContext_*.xml ">
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 8:02:45

芯片设计成本飙升的深层逻辑与一线工程师的破局之道

1. 项目概述&#xff1a;当芯片制程的“摩尔定律”撞上成本“墙”在半导体行业里干了十几年&#xff0c;我见过太多工程师和项目经理在立项会上&#xff0c;眼睛紧盯着性能指标和上市时间&#xff0c;却对那张越来越长的成本账单选择性地“视而不见”。直到最近翻到一篇2013年E…

作者头像 李华
网站建设 2026/5/12 8:00:33

从“能用”到“可靠”:基于SonarQube与Jenkins的代码质量防线构建实战

当测试覆盖率不再只是一串数字&#xff0c;而是合并代码前的“一票否决权” 1. 为什么你的“质量门禁”只是个摆设&#xff1f; 在很多团队的CI/CD流水线中&#xff0c;SonarQube的集成往往停留在“能跑就行”的阶段。流水线里确实有代码扫描这一步&#xff0c;日志里也打印出…

作者头像 李华
网站建设 2026/5/12 7:59:37

Speechless微博导出工具:5分钟掌握完整备份的终极方案

Speechless微博导出工具&#xff1a;5分钟掌握完整备份的终极方案 【免费下载链接】Speechless 把新浪微博的内容&#xff0c;导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 你是否担心多年积累的微博内容突然…

作者头像 李华
网站建设 2026/5/12 7:53:19

新手避坑指南:用ICC II做Floorplan,这5个细节没注意等于白做

新手避坑指南&#xff1a;用ICC II做Floorplan&#xff0c;这5个细节没注意等于白做 刚接触ICC II的后端工程师们&#xff0c;是否曾在Floorplan阶段反复踩坑却找不到原因&#xff1f;明明按照教程一步步操作&#xff0c;最终结果却总差强人意。Floorplan作为物理设计的基石&am…

作者头像 李华