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

相关文章
|
5月前
|
人工智能 运维 自然语言处理
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
566 15
|
5月前
|
人工智能 搜索推荐 程序员
从程序员到UP主:一个结构化的B站视频文案生成方案
专为技术人打造的B站视频文案生成指令,结构化拆解内容创作流程。输入主题、类型等信息,结合AI一键生成含分镜脚本、标题、SEO及互动设计的完整方案,提升创作效率与视频质量。
717 2
|
8月前
|
存储 人工智能 区块链
2025年如何高效组织学术资源?书籍文献管理工具全面指南!
在信息爆炸时代,专业文献管理工具成为研究必备。它们解决引用混乱、查找困难、同步不便等痛点,提供智能采集、多格式引用、跨平台同步等功能,助力构建系统化知识体系,提升研究效率。主流工具如Zotero、EndNote、板栗看板等各具特色,适配不同研究场景。未来,AI、区块链、知识图谱等技术将推动工具向智能化、沉浸式、全流程整合发展。
282 0
|
算法 安全 Ubuntu
Linux下的软件包管理器有哪些
Linux下的软件包管理器有哪些
690 5
|
域名解析 缓存 安全
CMS能帮你快速搭建网站。
使用CMS搭建网站简单高效,主要步骤包括选择合适的CMS系统(如PageAdmin)、购买域名和虚拟主机、上传并部署CMS、配置网站基本信息及栏目、进行SEO优化、填充内容并定期更新。最后通过性能优化和SEO推广提升网站表现。整个过程需根据具体需求调整,并参考官方文档或社区解决疑难问题。涉及高风险领域时,请在专业指导下操作。
242 14
|
11月前
|
JSON 前端开发 Java
彻底搞定 Spring 中的 @PathVariable 和 @ResponseBody
本文深入解析了Spring MVC中`@PathVariable`和`@ResponseBody`的使用方法及适用场景。`@PathVariable`用于从URL路径提取变量,增强REST风格接口的语义性;`@ResponseBody`则将方法返回值直接写入HTTP响应体,适合返回JSON或XML数据。通过多个实际案例,展示了两者在不同场景下的应用,如删除商品、获取商品详情等。文章还总结了最佳实践,帮助开发者更好地理解与运用这两个注解,提升接口设计的清晰度与可维护性。
357 0
|
存储 人工智能 数据库
《探秘NMF:解锁图像降维与有效特征提取的密码》
非负矩阵分解(NMF)是一种强大的图像降维与特征提取技术。它通过将图像数据分解为两个非负矩阵,挖掘局部特征、实现稀疏表示并适应复杂结构。NMF在人脸识别、图像压缩重建及分类检索中表现出色,有效提升了图像处理的效率和准确性,推动了计算机视觉领域的发展。
432 8
|
安全 测试技术
更睿智的看世界!实测阿里首个多模态视觉推理模型QVQ-72B-Preview
阿里通义千问Qwen团队于12月25日推出首个开源视觉推理模型QVQ-72B-Preview,该模型在数学、物理、化学等领域表现出色,在MMMU基准测试中得分70.3,超越Qwen2-VL-72B-Instruct。尽管在部分任务如立体图形计数上存在局限性,QVQ-72B-Preview仍展示了强大的视觉理解和推理能力。模型目前仅支持单轮对话和图像输出,不支持视频输入。地址:https://modelscope.cn/studios/Qwen/QVQ-72B-preview
|
存储 人工智能 自然语言处理
阿里云Elasticsearch AI场景语义搜索最佳实践
本文介绍了如何使用阿里云Elasticsearch结合搜索开发工作台搭建AI语义搜索。
18114 68
|
缓存 监控 Java
在Linux中,发现内存可用量很小,接下来怎么办?
在Linux中,发现内存可用量很小,接下来怎么办?

热门文章

最新文章