注:希望大家看后,请给我一点评价,无论写的怎么样,希望你们能给我支持。提出你宝贵的意见。我会继续完善。谢谢您。朋友。
以下部分是第三章余下的. 接下来我们要讲一下几种初始化,加载配置文件的方法。此过程其实就是我们要讲的Spring的心脏。为什么叫它心脏呢?因为它是Spring的控制反转的容器。加载是有谁来加载的呢?
其实是容器加载,配置文件中描述了我们要用到的bean也就是类之间的调用关系。就是这个配置文件告诉容器应该如何组装它们之间的依赖,调用关系,它只起到了描述的用作,而真正的管理工作是由容器来管理。我们前面说过,容器就是可以实例化的BeanFactory的类。它又有很多实现。现在让我们看看它有几种实现。BeanFactory是一个接口。
我们经常用的就是扩展它的接口ApplicationContext.而它的实现又有多种,我们只介绍一些常用的实现。applicationContext.xml文件是位于Src目录下。
第一种就是: ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
第二种就是: ApplicationContext context = new FileSystemXmlApplicationContext(
"Src/ applicationContext.xml ");
注意上面两种加载是的路径。
然后在把他们转换成BeanFactory就可以了。需要用到那个bean就用getBean(“”)取得,可以根据id或name都可以。
除此之外还有两种加载的方法:
第三种方法:ClassPathResource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
第四种方法:Resource resource = new FileSystemResource("Src/applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
同样要注意上面的路径的不同。其实classpath相对应的路径就是Src目录下,而fileSystem相对的是工程目录。所以它们路径是有区别的,加载时也要细心,不然就会报java.io.FileNotFoundException(系统找不到指定的文件)的异常了。
上面一些加载的方法都是存在main()方法时用的,如果在web里面。加载的方法也不同了。
在这里我也简单的说一下在和不同的框架应用时,所用的加载方法也不同。
在web项目中applicationContext.xml可能不止一个,但初始化的方法是一样的。
首先在和struts联合使用时。可以在struts-config.xml中初始化,也可以在web.xml中初始化。
(1) 在struts-config.xml中初始化。需要用到struts中的一个插件来完成。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
(2) 在web.xml中初始化又有两种方法。
第1种如下:
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
第2种如下:
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml</param-value>
</context-param>
<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
我就在web.xml中的两种方法在说明一下。如果配置文件的名字是applicationContext.xml且放在web-INF下面,只需要<listener></listener>和<servlet></servlet>就可以了。在web.xml加载时它会自动在WEB-INF下面找名为applicationContext.xml的配置文件。前提一定要保证位置和名字正确。
接下来让我们总结一下这一章主要讲了什么。一句话,主要讲了一些可以实例化BeanFactory的类,它们就充当着Spring的容器,不知你还迷茫吗?
说白了,我们把实现BeanFactory接口的类看做是Spring的控制反转的容器。来容纳那些需要管理的bean(类)。让容器这个大管家来操作它们之间的调用关系吧!!!
分享到:
相关推荐
2. **Spring容器**:Spring容器(ApplicationContext)是Spring框架的心脏,负责创建、配置和管理Bean。读者将了解到如何创建和使用不同类型的Spring容器,以及如何在容器中定义Bean及其生命周期。 3. **AOP**:...
第3章 系统分析 5 3.1 可行性分析 5 3.1.1技术可行性 5 3.1.2经济可行性 5 3.1.3运行可行性 6 3.2 系统流程 6 3.2.1 操作信息流程 6 3.2.2 登录信息流程 6 3.2.3 删除信息流程 7 3.3 性能需求 7 第4章 系统设计 8 ...
《Spring in Action》第二版是Manning出版社推出的Action系列书籍之一,主要针对Spring框架进行深入浅出的讲解。Spring框架是Java开发中的核心组件,它为构建企业级应用提供了全面的解决方案,包括依赖注入、AOP...
第三章 nacos官网介绍及单机部署 第四章 nacos集群部署 第五章 nacos控制台介绍 第六章 注册中心nacos(服务注册与发现) 第七章 Http客户端及负载均衡之springcloud openfeign 第八章 nacos配置中心 第九章 课程...
心脏病患者数据分析-心脏病患者数据分析系统-心脏病患者数据分析系统源码-心脏病患者数据分析管理系统-心脏病患者数据分析管理系统java代码-心脏病患者数据分析系统设计与实现-...第2章 相关技术介绍 3 2.1 MySQL数据库
使用Spring的方式有多种,例如构建完整的Web应用,集成到第三方Web框架中作为中间层,或者用于远程服务。Spring的IOC容器是整个框架的心脏,负责创建、管理和装配Bean。它通过读取配置元数据(XML、注解或Java代码)...
2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; ...
Spring框架的核心特性之一是依赖注入(Dependency Injection,简称DI),也称为控制反转(Inversion of Control,简称IoC)。这一特性改变了传统组件调用的方式,使得应用程序的耦合度降低,提高了可测试性、可维护...
它的优势在于能够轻松集成其他Spring模块和第三方库,如Spring Data JPA用于数据库操作,Spring Security用于权限管理等。 项目中的数据文件包括了多种格式,比如CSV(逗号分隔值)文件和PDF文档。CSV文件如...
- **依赖库**:包括Spring、Apache Commons、ognl、xwork等第三方库,这些是Struts2运行所必需的。 - **测试库**:可能包含`struts2-tests.jar`,用于单元测试和集成测试Struts2应用。 在实际开发中,开发者需要...
8. **支付接口**:为了完成实际的交易,项目可能集成了第三方支付接口,如支付宝或微信支付,这涉及API调用和回调处理。 9. **缓存技术**:为了提高性能,项目可能使用了缓存机制,如Redis,来存储频繁访问的数据。...
第三范式(3NF)要求表无传递依赖;第四范式(4NF)要求消除多值依赖。 4. **IP地址计算与掩码**: IP地址和子网掩码一起用于确定网络部分和主机部分。掩码与IP地址进行逻辑与操作,以确定主机是否在同一网络段内...
* 提供开放平台API,支持第三方应用集成 Apollo的应用场景 Apollo的应用场景主要包括: * 微服务配置管理 * 分布式系统配置管理 * 云计算资源配置管理 * 大数据分析平台配置管理 Apollo的优势 Apollo的优势...
服务器端使用框架(如Spring Boot、Django、Laravel)来简化开发,同时配合API接口实现与第三方服务(如物流、支付平台)的集成。 总结来说,电子购物系统由用户模块、产品模块、订单模块和购物车模块构成,各模块...
第三个实例可能是实现一个动态生成的表格展示,这会介绍Struts如何与DAO(Data Access Object)层交互,以及如何动态地在JSP页面上使用JSTL标签库来展示数据。 第四个实例可能是一个购物车应用,其中你需要处理多个...
它支持多种缓存策略,允许与第三方缓存框架集成,提供了缓存数据同步更新的解决方案。 通过学习Shiro教程,可以全面掌握使用Shiro进行安全控制的基本知识,为构建安全的Java应用程序打下坚实的基础。
4. 配送管理:处理配送地址、物流选择,与第三方物流平台接口对接。 5. 订单状态变更:如待发货、已发货、已完成等,确保信息同步给用户。 6. 退换货处理:提供退货申请、退款流程,维护消费者权益。 四、数据库...
支付处理模块与第三方支付平台集成,保证交易的安全和便捷。最后,客户关系管理模块帮助维护客户信息,提供个性化服务,促进客户满意度和忠诚度。 在技术选型方面,由于“标签”提到了Java,我们可以推断该系统是用...
除了Maven的默认仓库外,还可以通过`<repository>`标签添加自定义的远程仓库地址,这对于处理公司内部私有库或者第三方库的非中央仓库发布的情况非常关键。 在实际开发中,有时会遇到依赖冲突。Maven的依赖管理原则...