手动开发- 简单的 Spring 基于 XML 配置的程序

Eclipse手动添加Spring支持 org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现 org.springframework.asm——spring 2.5.6的时候需要asm jar包,spring3.0开始提供它自己独立的asm jar包 org.springframework.aspects——Spring提供的对AspectJ框架的整合 阅读详情

思路

  • 利用dom4j 读取 beans.xml配置文件
  • 获取到文件中配置的实体类全路径,通过反射生成对象
  • 将该对象放入 ConcurrentHashMap容器中,并提供一个getBean方法,可以通过id获取到该对象

代码

import org.dom4j.Document;  
import org.dom4j.DocumentException;  
import org.dom4j.Element;  
import org.dom4j.io.SAXReader;  
  
import java.io.File;  
import java.util.List;  
import java.util.concurrent.ConcurrentHashMap;  
  
public class ApplicationContext {  
   private ConcurrentHashMap<String, Object> singletonObjects =  
            new ConcurrentHashMap<>();  
  
   //构造器  
    // 接收一个容器的配置文件, 比如 beans.xml, 该文件默认在src  
    public ApplicationContext(String iocBeanXmlFile) throws Exception {  
  
        //1. 得到类加载路径  
        String path = this.getClass().getResource("/").getPath();  
  
        //2. 创建 Sareader        SAXReader saxReader = new SAXReader();  
  
        //3. 得到Document对象  
        Document document = saxReader.read(new File(path + iocBeanXmlFile));  
          
        //4 得到rootDocument  
        Element rootElement = document.getRootElement();  
          
        //5 得到第一个bean-monster01的相关属性  
        Element bean = (Element)rootElement.elements("bean").get(0);  
          
        //6. 获取到第一个bean-monster01的相关属性  
        String id = bean.attributeValue("id");  
        String classFullPath = bean.attributeValue("class");  
        List<Element> property = bean.elements("property");  
  
        // 遍历  
        Integer monsterId = Integer.parseInt(property.get(0).attributeValue("value"));  
  
        String name = property.get(1).attributeValue("value");  
        String skill = property.get(2).attributeValue("value");  
  
        //7. 使用反射创建对象 => 回顾反射机制  
        Class<?> aClass = Class.forName(classFullPath);  
        // 这里O对象就是Monster对象  
        Monster o = (Monster)aClass.newInstance();  
  
        o.setMonsterId(monsterId);  
        o.setName(name);  
        o.setSkill(skill);  
  
        //8 将创建好的对象放入到singletonObjects  
        singletonObjects.put(id,o);  
  
    }  
  
    public Object getBean(String id) {  
        return singletonObjects.get(id);  
    }  
}

测试

   
public class ApplicationContextTest {  
    public static void main(String[] args) throws Exception {  
        ApplicationContext ioc = new ApplicationContext("beans.xml");  
  
        Monster monster01 = (Monster)ioc.getBean("monster01");  
  
        System.out.println("monster01=" + monster01);  
        System.out.println("monster01.name=" + monster01.getName());  
        System.out.println("ok");  
  
    }  
}
手把手教你用Ubuntu Base 20.04打造轻量级ARM开发板根文件系统(附常见问题解决) 本文详细介绍了如何基于Ubuntu Base 20.04 LTS构建轻量级ARM开发板根文件系统,涵盖环境准备、镜像制作、跨架构配置、软件包定制及常见问题解决。通过实战指南,开发者可快速掌握ARM架构下的根文件系统构建技巧,优化系统性能并解决部署中的典型问题。 阅读详情

相关推荐

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

手动开发 简单的 Spring 基于 XML 配置的程序

1. 自己写一个简单的 Spring 容器, 通过读取 beans.xml,获取第 1 个 JavaBean: Monster 的 对象,并给该的对象属性赋值,放入到容器中, 输出该对象信息.3. 这里我们实现如何将beans.xml文件进行解析,并生成对象,放入容器中。系统会默认分配 id ,分配 id 的规则是 全类名#0 , 全类名#1。5. 这里就是一个开胃小点心, 理解Spring容器的机制。1. 这个程序用于实现Spring的一个简单容器机制。3. 可以了解 Spring 容器的简单机制。

业精于勤,荒于嬉 1658

SAP PS项目结算实操:从CJ20N到CJ88,手把手搞定项目成本结转与凭证生成

本文详细解析SAP PS项目结算全流程,从CJ20N到CJ88的操作要点,涵盖成本归集、结算规则配置、结果分析及凭证生成等关键环节。特别针对FICO模块中的项目凭证流转问题提供实战解决方案,帮助财务人员规避常见配置错误,提升项目结算效率与准确性。

weixin_26833503的博客 817

手动开发简单的Spring基于XML配置的程序

手动开发简单的Spring基于XML配置的程序

2301_77647448的博客 655

KF-gins输出结果绘图

KF-gins输出结果绘图

m0_51977577的博客 1108

鸿蒙子系统解读-分布式软总线子系统初步研究(下)

鸿蒙子系统解读-分布式软总线子系统初步研究(下) 本文作者:江苏润和软件股份有限公司 郎建中 3.2. 数据传输 上一节我们看了PublishService()函数的代码实现过程。被发现端发布服务后,软总线回调发布成功的函数中,被发现端需要使用CreateSessionServer()来创建会话的服务器等待发现端的连接创建会话。下面我们就来分析CreateSessionServer()函数的实现过程。 数据传输部分的代码位于foundation/communication/services/softbus

weixin_47070198的博客 3091

手动开发-简单的Spring基于XML配置的程序--源码解析

本文带着大家写一个简单的Spring容器,分析Spring源码

令狐_JackieHao的博客 560

UNet改进(54):当医学图像分割遇上频域学习与自监督

本文提出了一种改进U-Net的方法,通过频域增强模块和代理任务模块提升医学图像分割性能。频域增强模块在傅里叶空间对特征图进行可学习的频率调制,重点增强高频细节特征;代理任务模块通过图像重建约束编码器保留关键信息。两个模块协同工作,在仅增加5%参数量的情况下,形成空间域、频域和重建约束三条互补的信息路径。该方法特别适用于需要精细边缘分割的医学图像任务,预期能提升5%-10%的边缘分割精度,在小样本场景效果更显著。部署时可移除代理任务模块,不影响推理效率。未来可探索空间自适应频域调制和更丰富的代理任务设计。

2501_91516851的博客 227

一, Spring Boot 2.x 环境依赖,搭建基础架构

1.Spring Boot介绍Spring Boot并不是一项新的技术,而是Spring的一个新项目。其目的是帮助开发人员更加快速的使用Spring的组件和服务,只需很简单的步骤便能创建一个Spring应用程序。Spring Boot特点就是习惯优于配置,一个字&lt;快&gt;,不需要很多繁杂的XML配置,大大提高了开发效率。2.环境依赖JDK1.8Maven2.x3.参考文档Spring Bo...

Dennis的博客 453

论文分栏前后内容不连续?教你word如何删除分节符

问题 当我们在写论文的时候,很多期刊的模板都是两栏的格式,但有的时候我们插入的图像尺寸可能太大,两栏格式放不下,因此需要将其以一栏的格式出入,如下: 但当我们把图片删除后,再将其转换成两栏格式,前后内容就出现不连续的情况: 正常情况下应该是如下: 正确处理方式 里面有个分页符,把分页符去掉,或者把你的文字全部复制到记事本里,然后重新复制回word就可以取消原有的格式了。 删除分节符的方法(以word 2019为例) -点击菜单栏上的“视图”,点击“大纲视图”。 可以看到word文档以整列的形式展开:

左手の明天的博客 1万+

UniApp 覆盖安装后首次进入 APP pages.json 不生效的解决方案

通过以上步骤,解决了缓存问题导致的首次加载异常。此方案的关键在于强制更新文件名,从根本上避免旧缓存的干扰。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 687

手动开发简单的spring基于XML的程序,了解spring容器的简单机制。

实际Spring容器中对象的创建是在Spring容器下的beanfactory下的singletonObject下的table中进行一个创建。实际Spring容器还会将对象的信息放入beanfactory下的beanDefinitionMap下的table中。

m0_74301606的博客 1185

uniapp [安卓苹果App端] - 在“安卓app/苹果app“平台端打包编译后,微信授权登录报错 login:fail [:-1]未能完成操作。(PGWXAPI错误-1。)错误码code:-10

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,出现微信确认登录界面后点击登录报错,BundleID,应用ID,微信登录,app微信一键登录,微信登录绑定点确定就出错,AppSecrect,login:fail[:-1]未能完成操作。(PGWXAPI错误-1。),"errCode":-100,"code":-100,在uniappmanifest.json配置了AppSecrect还是报错无

🏆 前端领域优质创作者 3765

Spring注解开发和XML开发

Spring 的Xml开发和注解开发

luckly_xixi的博客 2674

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

搭建Spring开发环境并编写第一个Spring小程序

本文详细介绍了两种搭建Spring开发环境的方法:自动配置方式和手动配置方式。自动配置方式通过MyEclipse工具实现,适合初学者;手动配置方式需要下载Spring软件包并手动添加JAR文件,灵活性更高。文章通过创建动物接口实现和人接口实现两个示例项目,分别演示了两种配置方式的具体步骤,包括创建项目、添加Spring支持、配置JAR包位置、编写测试代码等。最后指出自动配置简单快捷,手动配置则更灵活,建议初学者使用类路径方式查找配置文件。两种方法各有所长,开发者可根据实际需求选择合适的配置方式。

ywl470812087的博客 11万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

spring注解开发与xml开发的对比!

1.spring基本介绍 spring的出现给软件开发带来了春天,它极大程度的减轻了软件开发复杂的流程和难度。spring最核心的两个部分应该是ioc(控制反转)和aop(面向切面)。 ioc(控制反转):应用程序本身不会实现对象的创建和维护,由外部容器负责创建和维护。不用实例化对象了,可以通过bean去配置。 反转的是获取对象的方式!以前通过new的方式去创建对象,现在通过getBean去容器中获取对象! aop(面向切面): 底层思想是代理思想,它可以通过不修改源程序实现业务功能的拓展,比如说..

weixin_42375707的博客 4083

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

spring的介绍、引用 spring 的依赖包、resources下xml的配置、简单示例

文章目录前言一、spring 简介二、spring 特点三、IOC概念四、DI概念五、使用spring实现一个简单程序(在jdk,还有maven安装好的前提下)1.引用 spring 的依赖包2.引用 spring context的依赖包3.编写dog类4.在 resources 文件夹中创建 spring-2.xml (名字自己定)的 spring 配置文件5.将 Dog 类配置到spring-2.xml,让其接受 spring 的管理6.测试总结 前言 由于近期比较忙,偷个闲,今天给大家说说Java

老赖的小弟的博客 1448

【Spring Boot】XML 配置示例

文章目录示例工具版本在 Eclipse 中的项目结构Maven 文件创建 XML 配置使用 @ImportResource 来导入 XML 配置创建 Service 和 Controller测试应用程序参考文献源码下载 在这一页,我们将提供spring boot XML配置的例子。 我们将用XML配置创建一个REST网络服务。 我们将在java配置中导入我们的XML文件。 我们需要在spring boot应用程序中使用@ImportResource和@Configuration。 我们可以在项目类路径中保留

猫巳的博客 6066

手动开发-简单的Spring基于注解配置的程序--源码解析

解析Spring的源码

令狐_JackieHao的博客 858

springboot中用xml配置spring bean

配置文件配置了一个类,并在应用程序的其他部分中使用了这个。配置也是一种有效的选择,特别是当你需要整合现有的。应用程序的其他部分中通过依赖注入的方式使用这个。注解的类),但有时你可能需要或者想要使用。推崇现代化的配置方式,但它仍然完全支持。配置文件中引用的类存在。可以通过在主类上添加。配置文件,并在其中定义你的。配置文件放在资源目录中:将。,所以你需要有这样一个类。的主应用程序类中导入这个。中,虽然推荐使用基于。

Kwoky的博客 1297

【JAVA】配置 Spring(XML, 注解, Java 配置)

配置 Spring(XML, 注解, Java 配置)

weixin_37559642的博客 1498

spring配置xml文件_XML配置文件中的Spring配置文件

spring配置xml文件 我的上一个博客非常简单,因为它涵盖了我从Spring 3.0.x到Spring 3.1.x的轻松升级,最后我提到可以将Spring模式升级到3.1,以利用Spring的最新功能。 在今天的博客中,我将介绍这些功能中最酷的功能之一:Spring配置文件。 但是,在谈论如何实现Spring配置文件之前,我认为探索它们正在解决的问题是一个好主意,这是需要为不同的环境创建不...

最佳 Java 编程 1468

Spring中Xml文件配置以及使用注解消除Xml

快速了解Spring中Xml文件配置以及使用注解消除Xml

qq_25206103的博客 1260

如何使用XML 配置的方式配置Spring?

在Spring 框架中,依赖和服务需要在专门的配置文件来实现,我常用的XML 格式的配置文件。这些配置文件的格式通常用开头,然后一系列的bean 定义和专门的应用配置选项组成。 SpringXML 配置的主要目的时候是使所有的Spring 组件都可以用xml 文件的形式来进行配置。这意味着不会出现其他的Spring 配置类型(比如声明的方式或基于Java Class 的配置方式) Spring 的XML 配置方式是使用被Spring 命名空间的所支持的一系列的XML 标签来实现的。Spring有以下主要

Leon_Jinhai_Sun的博客 732

【Spring】基于XML的Spring容器配置——<bean>标签与属性解析

通过以上的介绍和示例,我们深入探讨了Spring基于XML的容器配置,特别是标签及其属性解析的使用。我们学习了如何定义简单Bean、引用其他Bean以及使用集合类型属性。这些知识对于理解和使用Spring框架至关重要,能够帮助开发者在实际项目中更好地管理和配置Bean,提高代码的可维护性和可读性。

thinking_chou的专栏 1343

Spring Security——基于XML配置

Spring Security(安全框架,必须登录成功才能访问指定资源)

生命的痕迹 1866
上一篇: -webkit-text-fill-color
小菜101
博客等级 码龄10年 16粉丝 92原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值