HelloSpring

简介: 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的反转 : 程序本身不创建对象 , 而变成被动的接收对象 .依赖注入 : 就是利用set方法来进行注入的. IOC是一种编程思想,由主动的编程变成被动的接收可以通过newClassPathXmlApplicationContext去浏览一下底层源码 新增一个Spring配置文件beans.xml

HelloSpring

  • Hello 对象是谁创建的 ?

hello 对象是由Spring创建的

  • Hello 对象的属性是怎么设置的 ?
    hello 对象的属性是由Spring容器设置的

这个过程就叫控制反转 :

控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的

反转 : 程序本身不创建对象 , 而变成被动的接收对象 .

依赖注入 : 就是利用set方法来进行注入的.

IOC是一种编程思想,由主动的编程变成被动的接收

可以通过newClassPathXmlApplicationContext去浏览一下底层源码

新增一个Spring配置文件beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

   <bean id="MysqlImpl" class="com.kuang.dao.impl.UserDaoMySqlImpl"/>
   <bean id="OracleImpl" class="com.kuang.dao.impl.UserDaoOracleImpl"/>

   <bean id="ServiceImpl" class="com.kuang.service.impl.UserServiceImpl">
       <!--注意: 这里的name并不是属性 , 而是set方法后面的那部分 , 首字母小写-->
       <!--引用另外一个bean , 不是用value 而是用 ref-->
       <property name="userDao" ref="OracleImpl"/>
   </bean>

</beans>

测试!

@Test
public void test2(){
   ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
   UserServiceImpl serviceImpl = (UserServiceImpl) context.getBean("ServiceImpl");
   serviceImpl.getUser();
}

OK , 到了现在 , 我们彻底不用再程序中去改动了 , 要实现不同的操作 , 只需要在xml配置文件中进行修改 , 所谓的IoC,一句话搞定 : 对象由Spring 来创建 , 管理 , 装配 !

相关文章
|
8月前
|
API 定位技术 开发工具
百宝箱开放平台 ✖️ Android 集成说明
本文介绍如何通过SDK将百宝箱与友盟+ Android应用集成,涵盖环境配置、权限声明、混淆设置、SDK初始化及预初始化、日志查看、效果验证等步骤,并提供完整demo工程及参数说明,助力开发者快速实现功能集成。
485 1
百宝箱开放平台 ✖️ Android 集成说明
|
8月前
|
人工智能 算法
从大学课堂到产业一线:智能体教育引领AI创业新风口 ——黎跃春教授谈“智能体IP操盘手”的未来之路
“智能体来了”推动AI从实验室走向社会。大学生通过智能体开发实训,结合大模型与产业场景,成长为具备创造力的“AI操盘手”。在产教融合趋势下,智能体教育正孵化出内容创业、企业服务、AI教育等新赛道,催生“AI人格经济”。阿里云等平台提供技术支撑,让零基础学生也能实现从学习到变现的闭环。未来五年,智能体操盘手有望成为AI时代最具潜力的职业之一。
|
8月前
|
人工智能 自然语言处理 搜索推荐
智能体来了+培育AI智能体开发与应用新生态
随着AI智能体(Agent)技术成为下一代人工智能的核心,其开发与应用正面临从技术探索到产业落地的关键挑战。阿里云通过强大的计算基础、模型服务与开发平台,正积极构建覆盖技术、人才与产业的“AI智能体就业培训”新生态,助力开发者和企业拥抱智能体时代。
302 1
|
算法 安全 Ubuntu
Linux下的软件包管理器有哪些
Linux下的软件包管理器有哪些
871 5
|
11月前
|
存储 人工智能 区块链
2025年如何高效组织学术资源?书籍文献管理工具全面指南!
在信息爆炸时代,专业文献管理工具成为研究必备。它们解决引用混乱、查找困难、同步不便等痛点,提供智能采集、多格式引用、跨平台同步等功能,助力构建系统化知识体系,提升研究效率。主流工具如Zotero、EndNote、板栗看板等各具特色,适配不同研究场景。未来,AI、区块链、知识图谱等技术将推动工具向智能化、沉浸式、全流程整合发展。
455 0
|
存储 人工智能 自然语言处理
阿里云Elasticsearch AI场景语义搜索最佳实践
本文介绍了如何使用阿里云Elasticsearch结合搜索开发工作台搭建AI语义搜索。
18359 68
|
SQL 存储 关系型数据库
多态性在面向对象编程中的应用场景
多态性是面向对象编程的核心特性之一,允许使用同一接口表示不同类型的对象,提高代码的灵活性和可扩展性。常见应用场景包括:方法重写、接口实现、抽象类等,通过多态可以轻松管理复杂系统,实现软件组件的松耦合。
754 5
|
资源调度 JavaScript 前端开发
一文带你了解和使用vue-cli(2024年11月)
欢迎来到我的博客!我是一名热爱前端技术的大一学生,自学JavaScript与Vue已两年半,目前正向全栈工程师迈进。如果你从我的博客中有所收获,欢迎关注我,我会持续更新更多优质内容,一起成长!🎉🎉🎉
623 0
一文带你了解和使用vue-cli(2024年11月)
|
存储 物联网
stm32驱动RFID高频读卡器读取IC卡
stm32驱动RFID高频读卡器读取IC卡
560 0
|
缓存 监控 Java
在Linux中,发现内存可用量很小,接下来怎么办?
在Linux中,发现内存可用量很小,接下来怎么办?