首先使用xml配置文件的好处是参数配置项与代码分离,便于管理以及日后的维护和修改。
其次,xml是标准化的树节点文档,通用性强。
第三,在一个采用SSH2框架的java web项目中,容器在初次启动的时候,会先读取
web.xml,如果
web.xml里面配置了spring和
struts2的监听器,则会通过监听器的配置路径找到spring和struts的配置文件。srping的配置文件是applicationContext.xml,而
struts2的配置文件是struts.xml。至于底层解析可能是采用
dom解析方式。
再来接着说解析后被调用的过程:
当容器启动并读取
web.xml的时候,如果发现有配置监听器,则会先进入监听器的初始化方法,并执行里面的代码逻辑。spring监听器的配置为:
<!-- spring整合
struts2的监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 给监听器设置需要监听的spring配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
注意第二段配置描述的spring的监听配置文件路径,也就是说spring容器加载的参数都是定义在项目src下的:applicationContext.xml中。这时候容器会读取该配置文件,从而知道了用户定义了哪些要初始化的Bean,要注入的对象等等。比如如果在spring中注入了
数据持久层框架Hibernate,那么就会将Hibernage的sessionFaction初始化出来,并且将相应的数据源信息加载到内存中,从而在开发的时候,直接从容器中获取dao对象来进行
数据持久层的相关操作。这样就不用在代码中再去设置要操作哪个数据库的,已经超时时间等相关参数了。从而做到我一开始说的配置项和代码的分离。
相关文章
- (转)在图像处理中,散度 div 具体的作用是什么?
- 技术对比着学-java中abstract,public,protected,private以及不写作用域的时候在继承关系中的调用
- 使用框架时,在web.xml中配置servlet时,拦截请求/和/*的区别。
- 2024-10-10 问AI: [AI面试题]激活函数在神经网络中的作用是什么?-通义
- 在xml中调用自己用java代码定义的View
- RabbitMQ 优点和缺点- 消息可靠性:RabbitMQ 提供了持久化功能和消息确认机制,确保消息在各种情况下都能可靠地存储和处理。 灵活的路由:通过多种交换机类型和绑定规则,RabbitMQ 能够灵活地路由消息到指定的队列。 支持多种消息协议:实现了 AMQP 等(MQTT、STOMP)标准化、开放的消息队列协议,使其能够与多种语言编写的应用程序进行通信。 插件化扩展:RabbitMQ 提供了丰富的插件系统,可以通过插件扩展功能,如死信队列、压缩、追踪等。 高可用性:支持集群模式和镜像队列,确保服务的可用性 易用性和可管理性:提供了丰富的 API 和管理工具,以及多种客户端库和框架支持,易于集成和使用。 多语言支持:RabbitMQ 支持多种编程语言的客户端,包括 Java、Python、Ruby、C#、Node.js 等,方便开发人员集成到各种应用中。 高性能:在处理大量并发消息时表现出色。 广泛的社区支持:拥有庞大的开发者社区和丰富的文档资源。 劣势: 性能和吞吐量较低:相比于 Apache Kafka 等面向大数据流处理的消息队列系统,RabbitMQ 的吞吐量较低,不适合处理海量的实时数据流。RabbitMQ 的设计更注重消息的可靠性和灵活性,而非极高的吞吐性能。
- java架构师指南:架构师在团队中的作用
- 在eclipse中创建maven项目时,pom.xml或者Java Resources出现红色叉的解决方案
- java中的TODO是什么,作用
- 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]...