java @Bean和@Autowired有什么区别

区别是:@Bean修饰的方法表示初始化一个对象并交由Spring IOC去管理,@Bean 只能和@Component @Repository @Controller @Service @Configration 配合使用。@Autowired 可修饰变量和方法,用于完成自动装配(将需要的外部资源注入),自动装配的前提要先有才能装配,直接引用资源就行。

java @Bean和@Autowired有什么区别-Worktile社区

@Bean

@Bean修饰的方法表示初始化一个对象并交由Spring IOC去管理,@Bean 只能和@Component @Repository @Controller @Service @Configration 配合使用。

JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。对于程序员来说,较好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。

比如说一个购物车程序,要实现购物车中添加一件商品这样的功能,就可以写一个购物车操作的JavaBean,建立一个public的AddItem成员方法,前台Jsp文件里面直接调用这个方法来实现。如果后来又考虑添加商品的时候需要判断库存是否有货物,没有货物不得购买,在这个时候我们就可以直接修改JavaBean的AddItem方法,加入处理语句来实现,这样就完全不用修改前台jsp程序了。

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。

@Autowired

@Autowired 可修饰变量和方法,用于完成自动装配(将需要的外部资源注入),自动装配的前提要先有才能装配,直接引用资源就行。

@Autowired是一种注解,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。

这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用;

前者,Spring会直接将UserDao类型的少数一个bean赋值给userDao这个成员变量;后者,Spring会调用setUserDao方法来将UserDao类型的少数一个bean装配到userDao这个属性。

Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

延伸阅读:

JavaBean需求

JavaBean是java类,属于某些特定的译码指导方针,并且扩展了适应性和范围,允许用户访问内部的属性和方法。通过这些,JavaBean类可以用于下列方法:

1、在IDE中,JavaBean的功能允许应用开发者浏览其中的方法,即使JavaBean是被编译的,并且无法利用原始的源文件。

2、在 Remote Method Invocation(RMI) 的分布式风格中,这项功能听起来并不让人兴奋,但是在未来的包含企业版的JavaBean后,将改变这种情况。

3、为了JavaBean的属性值和状态可以保存到磁盘上。

文章标题:java @Bean和@Autowired有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38061

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月13日 下午11:01
下一篇 2023年2月13日 下午11:04

相关推荐

  • 通常采用什么编程

    标题:掌握编程的入门策略:通常采用什么编程语言? 摘要:对于初学者来说,选择合适的编程语言是迈向编程世界的第一步。通常,1、Python、2、JavaScript、3、Java 是最受推荐的入门语言。这些语言在简单性、广泛的应用场景、以及庞大的支持社区方面表现出色。特别是Python,以其简洁的语法…

    2024年4月26日
    1000
  • 初级编程工作都是什么

    入门级编程工作包括:1、前端开发、2、后端开发、以及3、软件测试。 在这三者中,前端开发通常作为一个起点,它要求对网页设计有强烈的兴趣和基本的技能掌握,比如HTML、CSS和JavaScript的使用。这一领域关注的是用户界面和用户体验,是将代码转化为图形界面的过程,使得用户能够互动。因此,入门级前…

    2024年4月27日
    600
  • 单精度和双精度的区别是什么

    单精度和双精度的区别在于以下几个方面:1、所占的内存不同;2、所存的数值范围不同;3、十进制下的位数不同。所占的内存不同是指,单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位。 一、所占的内存不同 单精度浮点数占用4个字节(32位)存储空间来存储一个浮…

    2023年2月17日
    9.9K00
  • 学少儿编程有什么好处

    学习少儿编程有多方面的益处,其中包括1、培养逻辑思维能力、2、提高问题解决能力、3、激发创新意识、4、增强计算机素养、5、提前职业规划。培养逻辑思维能力尤为重要,因为逻辑思维是数学、科学甚至日后的职业决策中不可或缺的能力。通过编程教育,孩子可以系统地学习如何清晰地定义问题、分解问题,并通过有序的步骤…

    2024年4月25日
    1800
  • 学一个编程要什么学历呢

    无需特定学历,1、对于学习编程,无特定学历要求。其中关键是对编程语言和逻辑思维能力的热情及练习。尤其突出的是逻辑思维,这是因为编程不仅仅是关于写代码,更多的是如何解决问题。编程语言可以学习,但逻辑思维能力更多的是需要通过不断的练习和应用来提升。正是这种思维方式使得个人能够更好地理解问题,并通过编码找…

    2024年4月28日
    500
  • 生产型企业用什么管理软件

    生产型企业使用的管理软件主要包括:1、ERP系统;2、MES管理系统;3、WMS仓储管理系统;4、CRM客户关系管理系统;5、PDM产品数据管理系统;6、HRM人力资源管理系统。其中,ERP系统是指整合了企业内各部门功能的管理系统,它可以协助企业进行高效的生产管理。 1、ERP系统 生产型企业:ER…

    2023年7月18日
    99500
  • 如何管理项目广告位

    广告位管理是一种旨在优化资源配置、提高盈利能力并提升用户体验的战略手段。有效的广告位管理包括确定广告目标、选择合适的广告平台、优化广告内容、监测和调整广告表现,以及持续跟踪广告收益。在这些策略中,选择合适的广告平台是特别关键的,因为一个好的平台能够提供匹配的受众、优秀的用户界面和有利于广告效果的技术…

    2024年4月10日
    7500
  • 课题项目经费管理办法

    标题:课题项目经费管理办法 摘要:课题项目经费管理是科研活动当中的关键组成部分,保证科研活动的顺利进行。本文核心包括:1、经费审批与拨付、2、经费使用规定、3、经费监管机制、4、违规处理措施。细节之中,经费使用规定尤为重要,确保每笔资金都被合理、高效地使用在切实的研究用途上,它涉及到资金的种类、使用…

    2024年1月10日
    26300
  • linux devops是什么意思

    LINUX DEVOPS解读:IT行业革新的架构 在当代IT领域,Linux DevOps成为了一种创新和效率并重的重要趋势。1、结合Linux系统的稳定性与开放源代码的优势,2、DevOps文化的推广,两者结合促进了快速、可靠的软件开发与交付流程。重中之重在于如何有效融合Linux的高效性能与De…

    2024年3月26日
    8400
  • 盖雅工场章新波:10余年 To B苦行之起承转合,差异化定位会带来长期红利

    文| babayage 编辑 |笑 笑 盖雅工场创建于2009年,10余年一路走来,技术转型、环境变迁、竞争升级……挑战源源不断,但深谙定位之道的章新波始终坚守着“科技让劳动力更高效”这一核心价值,让盖雅工场成为了华润、GAP、雅诗兰黛、阿尔斯通等优异企业的长期选择。 起:锚定差异化优势小公司也能拿…

    2022年3月20日
    85400

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部