第三章 Spring的心脏之二

简介:
      注:希望大家看后,请给我一点评价,无论写的怎么样,希望你们能给我支持。提出你宝贵的意见。我会继续完善。谢谢您。朋友。

以下部分是第三章余下的.
   接下来我们要讲一下几种初始化,加载配置文件的方法。此过程其实就是我们要讲的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(“”)取得,可以根据idname都可以。

除此之外还有两种加载的方法:

第三种方法: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()。让容器这个大管家来操作它们之间的调用关系吧!!!









本文转自 weijie@java 51CTO博客,原文链接:http://blog.51cto.com/weijie/66459,如需转载请自行联系原作者
目录
相关文章
|
XML Java 数据格式
|
27天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
40 0
|
2月前
|
缓存 Java Maven
Spring Boot自动配置原理
Spring Boot自动配置原理
48 0
|
1月前
|
缓存 安全 Java
Spring Boot 面试题及答案整理,最新面试题
Spring Boot 面试题及答案整理,最新面试题
111 0
|
3月前
|
Java Spring
springboot跨域配置
springboot跨域配置
33 0
|
1月前
|
前端开发 搜索推荐 Java
【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革
【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革
|
15天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
6天前
|
安全 Java 应用服务中间件
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
24 0
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
|
8天前
|
XML Java C++
【Spring系列】Sping VS Sping Boot区别与联系
【4月更文挑战第2天】Spring系列第一课:Spring Boot 能力介绍及简单实践
【Spring系列】Sping VS Sping Boot区别与联系
|
15天前
|
Java 容器 Spring
Springboot自动配置原理
Springboot自动配置原理