SpringMVC框架中配置项

目录:applicationContext配置、bean标签配置、web.xml配置、

1、Spring容器分为两种类型:BeanFactory与ApplicationContext

1)、BeanFactory:(org.springframework.beans.factory.BeanFactory接口定义)是最简单的容器,它根据XML文件中的定义加载beans,该容器从XML文件读取配置元数据并用它去创建一个完全配置的系统或应用。 如果没有特殊指定,默认采用延迟初始化策略(lazy-load)只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入操作。所以,相对来说,容器启动初期速度较快,所需要的资源有限,并且功能要求不是很严格的场景。                                                      

2)、ApplicationContext应用上下文:(org.springframework.context.ApplicationContext)基于BeanFactory之上构建,并提供面向应用的服务。ApplicationContext所管理的对象,在该类型容器启动之后,默认全部初始化并绑定完成。所以,相对于BeanFactory来 说,ApplicationContext要求更多的系统资源,同时,因为在启动时就完成所有初始化,容 器启动时间较之BeanFactory也会长一些。在那些系统资源充足,并且要求更多功能的场景中, ApplicationContext类型的容器是比较合适的选择。

2、ApplicationContext通常的实现

 1)ClassPathXmlApplicationContext:从类路径下的XML配置文件中加载上下文定义,把应用上下文定义文件当做类资源。               2)FileSystemXmlApplicationContext:读取文件系统下的XML配置文件并加载上下文定义。                                                             3)XmlWebApplicationContext:读取Web应用下的XML配置文件并装载上下文定义。 

3、IOC注入方式:

1)接口注入;2)构造器依赖注入;3)Setter方法注入 ;4)用注解方式

第二种与第三种方式是在配置文件中配置bean时作为参数,注解的方式有:

  • Autowired是自动注入,自动从spring的上下文找到合适的bean来注入。
  • Resource用来指定名称注入。
  • Qualifier和Autowired配合使用,指定bean的名称。

4、bean标签中的属性 

id;name;class;  ini-method(Bean实例化后会立刻调用的方法);                                                                                                              destory-method(Bean从容器移除和销毁前,会调用的方法);                                                                                                                        factory-method(运行时调用一个指定的静态方法,从而代替构造方法来创建一个类的实例);                                                                      scope(Bean的作用域,包括默认singleton,prototype(每次调用都创建一个实例),request,session,global-session);                                        autowired(自动装配byName,byType,constructor,autodetect(首先阐释使用constructor自动装配,如果没有发现与构造器相匹配的Bean时,Spring将尝试使用byType自动装配))。

5、bean装配的标签

Spring自动检测Bean和定义Bean.元素会扫描指定的包和其所有子包,如:标注Bean  注解如下:                                                                @Component:通用的构造型注解,标注此类为Spring组件                                                                                                            @Controller:标识该类定义为SpringMVC  Controller                                                                                                                      @Repository:标识该类定义为数据仓库                                                                                                                                              @Service:标识该类定义为服务

6、Spring加载resources

​​Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath加载文件,如bean的定义文件。                                         classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。                                                                                                     classpath:只会到你的class路径中查找找文件,仅加载第一个classpath文件                                                                                               用classpath*:需要遍历所有的classpath,所以加载效率会比较差一些,如果只使用classpath:,需要规划好资源文件的路径,尽量避免重名,导致资源文件加载不到的问题。

7、Spring中web.xml文件的配置

 1)、一个web​中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的Application。                                                                         

2)、当要启动某个web项目时,服务器软件或容器如(tomcat)会第一步加载项目中的web.xml文件,通过其中的各种配置来启动项目,只有其中配置的各项均无误时,项目才能正确启动。web.xml有多项标签,在其加载的过程中顺序依次为:context-param >> listener >> fileter >> servlet。(同类多个节点以出现顺序依次加载)。

     在实际项目中spring的配置文件applicationcontext.xml是通过spring提供的加载机制自动加载到容器中。在web项目中,配置文件加载到web容器中进行解析。目前,spring提供了两种加载器,以供web容器的加载:一种是ContextLoaderListener,另一种是ContextLoaderServlet。这两种在功能上完全相同,只是前一种是基于Servlet2.3版本中新引入的Listener接口实现,而后一种是基于Servlet接口实现。

load-on-startup:加载顺序,如果该元素的值为负数或者没有设置,则容器会当Servlet被请求时再加载。如果值为正整数或者0时,表示容器在应用启动时就加载并初始化这个servlet,值越小,servlet的优先级越高,就越先被加载。值相同时,容器就会自己选择顺序来加载。

<listener>                                             
<listener-class>org.springframework.context.ContextLoaderListener<listener-class>                                              
<listener>
<servlet>                                            
<servlet-name>context<servlet-name>                  
<servlet-class>org.springframework.context.ContextLoaderServlet<servlet-class>     
<load-on-startup>1<load-on-startup>        
<servlet>

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值