当前位置:首页 > 文章列表 > 文章 > java教程 > Java Spring读取和存储实例分析

Java Spring读取和存储实例分析

来源:亿速云 2024-04-20 17:36:28 0浏览 收藏
推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《Java Spring读取和存储实例分析》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

    存储bean对象

    之前我们存储bean对象时,需要在配置文件中加入一行bean才能进行注入

    Java Spring读取和存储实例分析

    这种注入方式并不好,如果配置文件出了错,程序是不会显示错误信息的。这对初学者来说很不友好。

    1.创建项目

    创建启动类和main方法

    Java Spring读取和存储实例分析

    引入依赖

    Java Spring读取和存储实例分析

    <dependencies>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

    创建配置文件

    我们约定好创建的bean对象放在com.bean包下:

    Java Spring读取和存储实例分析

    <dependencies>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

    2.添加注解将bean存入到容器中

    使用Spring的核心就是使用注解,我们学习的注解有5个

    @Controller 【控制器】@Service 【服务】@Repository 【仓库】@Configuration 【配置/布局】@Component 【组件】 2.1 controller

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    我们之前能够通过传入id参数来获取对象,但那是加了一行bean手动加入的id,但现在我们使用了注解,难道就只能使用类类型来获取吗?

    我们使用注解注入bean对象时,id其实默认是类名的小驼峰形式:

    Java Spring读取和存储实例分析

    原因先不解释,后面会说。

    容易犯的错:
    我们之前在配置文件中加入了bean对象查找的根目录,意味着会从这个目录开始向下搜索,但不会向上:

    下级目录

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    上级目录

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    2.2 Service

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    2.3 Repository

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    2.4 Configuration

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    2.5 Component

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    2.6 为什么会有5大类注解

    Java Spring读取和存储实例分析

    在公司中每个人负责的领域不同,因此使用的类注解也是不同的,但五大类注解本质都是一样的。

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    我们通过两个类注解就能清楚的看到,其他四个注解都是引入了Component注解的方法,也就是说Component是其他四个类注解的父亲。那么Component是干嘛的呢?就是不好分到其他四个类注解时丢给它的~

    2.7 id为什么默认是小驼峰

    们使用全局搜索:

    Java Spring读取和存储实例分析

    查找AnnotationBeanNameGenerator:

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    测试:

    Java Spring读取和存储实例分析

    2.8使用bean注解

    bean注解是一个方法注解,当对一个方法使用时,返回的对象也会被Spring注入,但需要配合五大类注解使用(任意一个都行)

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    id就是方法名。

    2.8.1 bean重命名

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    2.8.2重命名多个

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    注意:当使用name属性重命名后,原本的方法名将失去作用,也就是说只能使用那么修改后的名字作为id了。

    获取bean对象

    获取bean对象也叫对象注入,其有以下3种方法:

    • 属性注入

    • 构造方法注入

    • Setter注入

    1.属性注入

    1.1 Autowired

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    虽然现在看起来没什么问题,但是当我们对同一类型的对象进行了多次注入:

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    此时就需要精准定位所选择的对象了,需要类型+名字:

    Java Spring读取和存储实例分析

    1.2Resource

    Java Spring读取和存储实例分析

    1.3二者区别

    Resource有个name 属性,可以指定注入bean的名称

    Java Spring读取和存储实例分析

    但Autowired也有个搭配注解,@Qualifier,一样可以指定选择的bean对象,所以二者之间嘛,我觉得打成平手

    Java Spring读取和存储实例分析

    ps:Autowired注解一开始是要进行查询所有类型为所需注入的对象的类型,但Autowired一次只能注入一个对象,因此当统一类型的对象注入多次后会报错。而Qualifier注解本质上是对其所查询的结果进行筛选。

    2.构造方法注入

    还是使用Autowired注解:

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    ps:当只有一个构造方法时,Autowired可以省略

    但当有两个以上时不能省略

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    Setter注入

    还是通过Autowired

    Java Spring读取和存储实例分析

    Java Spring读取和存储实例分析

    Resource也支持Setter注入。

    经典面试题

    属性注入、构造方法注入、Setter注入有什么区别?

    Java Spring读取和存储实例分析

    终于介绍完啦!小伙伴们,这篇关于《Java Spring读取和存储实例分析》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

    版本声明
    本文转载于:亿速云 如有侵犯,请联系study_golang@163.com删除
    Java函数为何表现卓越?优势解析Java函数为何表现卓越?优势解析
    上一篇
    Java函数为何表现卓越?优势解析
    golang-migrate 初始迁移时没有更改错误
    下一篇
    golang-migrate 初始迁移时没有更改错误
    查看更多
    最新文章
    查看更多
    课程推荐
    • 前端进阶之JavaScript设计模式
      前端进阶之JavaScript设计模式
      设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
      543次学习
    • GO语言核心编程课程
      GO语言核心编程课程
      本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
      516次学习
    • 简单聊聊mysql8与网络通信
      简单聊聊mysql8与网络通信
      如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
      500次学习
    • JavaScript正则表达式基础与实战
      JavaScript正则表达式基础与实战
      在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
      487次学习
    • 从零制作响应式网站—Grid布局
      从零制作响应式网站—Grid布局
      本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
      485次学习
    查看更多
    AI推荐
    • ChatExcel酷表:告别Excel难题,北大团队AI助手助您轻松处理数据
      ChatExcel酷表
      ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
      3203次使用
    • Any绘本:开源免费AI绘本创作工具深度解析
      Any绘本
      探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
      3416次使用
    • 可赞AI:AI驱动办公可视化智能工具,一键高效生成文档图表脑图
      可赞AI
      可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
      3446次使用
    • 星月写作:AI网文创作神器,助力爆款小说速成
      星月写作
      星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
      4555次使用
    • MagicLight.ai:叙事驱动AI动画视频创作平台 | 高效生成专业级故事动画
      MagicLight
      MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
      3824次使用
    微信登录更方便
    • 密码登录
    • 注册账号
    登录即同意 用户协议隐私政策
    返回登录
    • 重置密码