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 来创建 , 管理 , 装配 !

相关文章
|
1月前
|
人工智能 运维 自然语言处理
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
255 15
|
1月前
|
人工智能 搜索推荐 程序员
从程序员到UP主:一个结构化的B站视频文案生成方案
专为技术人打造的B站视频文案生成指令,结构化拆解内容创作流程。输入主题、类型等信息,结合AI一键生成含分镜脚本、标题、SEO及互动设计的完整方案,提升创作效率与视频质量。
313 2
|
27天前
|
人工智能 算法
从大学课堂到产业一线:智能体教育引领AI创业新风口 ——黎跃春教授谈“智能体IP操盘手”的未来之路
“智能体来了”推动AI从实验室走向社会。大学生通过智能体开发实训,结合大模型与产业场景,成长为具备创造力的“AI操盘手”。在产教融合趋势下,智能体教育正孵化出内容创业、企业服务、AI教育等新赛道,催生“AI人格经济”。阿里云等平台提供技术支撑,让零基础学生也能实现从学习到变现的闭环。未来五年,智能体操盘手有望成为AI时代最具潜力的职业之一。
|
4月前
|
存储 人工智能 区块链
2025年如何高效组织学术资源?书籍文献管理工具全面指南!
在信息爆炸时代,专业文献管理工具成为研究必备。它们解决引用混乱、查找困难、同步不便等痛点,提供智能采集、多格式引用、跨平台同步等功能,助力构建系统化知识体系,提升研究效率。主流工具如Zotero、EndNote、板栗看板等各具特色,适配不同研究场景。未来,AI、区块链、知识图谱等技术将推动工具向智能化、沉浸式、全流程整合发展。
167 0
|
算法 安全 Ubuntu
Linux下的软件包管理器有哪些
Linux下的软件包管理器有哪些
548 5
|
7月前
|
JSON 前端开发 Java
彻底搞定 Spring 中的 @PathVariable 和 @ResponseBody
本文深入解析了Spring MVC中`@PathVariable`和`@ResponseBody`的使用方法及适用场景。`@PathVariable`用于从URL路径提取变量,增强REST风格接口的语义性;`@ResponseBody`则将方法返回值直接写入HTTP响应体,适合返回JSON或XML数据。通过多个实际案例,展示了两者在不同场景下的应用,如删除商品、获取商品详情等。文章还总结了最佳实践,帮助开发者更好地理解与运用这两个注解,提升接口设计的清晰度与可维护性。
262 0
|
9月前
|
域名解析 缓存 安全
CMS能帮你快速搭建网站。
使用CMS搭建网站简单高效,主要步骤包括选择合适的CMS系统(如PageAdmin)、购买域名和虚拟主机、上传并部署CMS、配置网站基本信息及栏目、进行SEO优化、填充内容并定期更新。最后通过性能优化和SEO推广提升网站表现。整个过程需根据具体需求调整,并参考官方文档或社区解决疑难问题。涉及高风险领域时,请在专业指导下操作。
182 14
|
9月前
|
存储 人工智能 数据库
《探秘NMF:解锁图像降维与有效特征提取的密码》
非负矩阵分解(NMF)是一种强大的图像降维与特征提取技术。它通过将图像数据分解为两个非负矩阵,挖掘局部特征、实现稀疏表示并适应复杂结构。NMF在人脸识别、图像压缩重建及分类检索中表现出色,有效提升了图像处理的效率和准确性,推动了计算机视觉领域的发展。
328 8
|
SQL 存储 关系型数据库
多态性在面向对象编程中的应用场景
多态性是面向对象编程的核心特性之一,允许使用同一接口表示不同类型的对象,提高代码的灵活性和可扩展性。常见应用场景包括:方法重写、接口实现、抽象类等,通过多态可以轻松管理复杂系统,实现软件组件的松耦合。
468 5
|
资源调度 JavaScript 前端开发
一文带你了解和使用vue-cli(2024年11月)
欢迎来到我的博客!我是一名热爱前端技术的大一学生,自学JavaScript与Vue已两年半,目前正向全栈工程师迈进。如果你从我的博客中有所收获,欢迎关注我,我会持续更新更多优质内容,一起成长!🎉🎉🎉
484 0
一文带你了解和使用vue-cli(2024年11月)