SSM中的xml配置

一、web.xml

1.web容器,跟随tomcat启动。

(1)<!-- spring的配置文件-->

< context-param >
     < param-name >contextConfigLocation</ param-name >
     < param-value >classpath:applicationContext.xml</ param-value >
</ context-param >

<context-param>:在这里是指定了applicationContext.xml的地址,但这个标签本质上是一组键值对,通过<param-name>和<param-value>来表示键值,则在程序中即可以通过name取到value,说白了,他就相当于设定了一个固定值,我们可以在程序中去使用它。就这么个作用。下面列举一个取值的栗子:

<context-param>
            <param-name>home-page</param-name>
            <param-value>home.jsp</param-value>

</context-param>

取值:String HomePage = getServletContext().getInitParameter("home-page");

通过上面这句代码,我们就可以取得web.xml中配置的home.jsp这个值。


(2)配置监听:Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是: 做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。

        

< listener >
     < listenerclass >org.springframework.web.context.ContextLoaderListener</ listener-class >
</ listener >


(3)<!-- 配置servlet,spring mvc核心:分发servlet -->

< servlet >
     < servlet-name >mvc-dispatcher</ servlet-name >
     < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class >
<!-- spring mvc的配置文件 -->
    < init-param >
         < param-name >contextConfigLocation</ param-name >
    </ init-param >
         < load-on-startup >1</ load-on-startup >
</ servlet >

注1:<servlet-name>的名字随便起,但是class必须是org.springframework.web.servlet.DispatcherServlet,而且这里的<servlet-name>名字和下面的mapping的<servlet-name>名字需要一致,<init-param>classpath:springMVC.xml(如果springMVC.xml直接在src下面的写classpath:文件名即可,如果还有一层包,那就写classpath:包名/spring-config.xml

注2:<init-param>和<context-param>一样都上下文参数,但是区别在于范围和使用方式不同。

<context-param>是application范围内的初始化参数,用于向servlet-context提供键值对,即应用程序的上下文信息,listener、filter等初始化时会用到这些信息

<init-param>是servlet范围内的参数,只能在servlet类的init()方法中取得。

注3:<loda-on-startup>:在servlet的配置当中,<load-on-startup>1</load-on-startup>的含义是标记容器是否在启动的时候就加载这个servlet。当值为0或者大于0时,表示容器在应用启动时就加载这个servlet,当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载,正数的值越小,启动该servlet的优先级越高。

(4)Servlet的映射地址:Servlet在编写完毕后,必须先在web.xml中配置才能访问。在配置时,需要指定一个 Servlet的访问地址。

< servlet-mapping >
     < servlet-name >mvc-dispatcher</ servlet-name >
     < url-pattern >/</ url-pattern >
</ servlet-mapping >

 

二、applicationContext.xml

1.<!-- 声明注解 -->

<context:annotation-config />
<context:component-scan base- package = "com.how2java.service"  />

<context:annotation-config/>:作用是向Spring容器注册以下四个BeanPostProcessor:

  • AutowiredAnnotationBeanPostProcessor
  • CommonAnnotationBeanPostProcessor
  • PersistenceAnnotationBeanPostProcessor
  • RequiredAnnotationBeanPostProcessor
那么,为什么要注册这四个BeanPostProcessor呢?是为了让系统能够识别相应的注解。

如果按照传统的方式进行配置将会非常繁琐,所以Spring给我们提供了一个简便的方式:<context:annotation-config/>,使用该元素可以自动声明以上注解。

注:由于<context:component-scan base-package=”xx.xx”/>也包含了自动注入上述Bean的功能,所以<context:annotation-config/> 可以省略。如果两者都进行了配置,则只有前者有效。

2.<!-- 配置数据源 -->

<bean id= "dataSource"  class = "org.springframework.jdbc.datasource.DriverManagerDataSource"
    <property name= "driverClassName"
         <value>com.mysql.jdbc.Driver</value> 
    </property> 

     <property name= "url"
         <value>jdbc:mysql: //localhost:3306/bpm?characterEncoding=UTF-8</value> 
     </property>
 
     <property name= "username"
         <value>root</value> 
     </property> 

     <property name= "password"
         <value>cictec</value> 
     </property>    
     </bean>
3. <!-- 扫描存放sql语句的category.xml -->
<bean id= "sqlSession"  class = "org.mybatis.spring.SqlSessionFactoryBean" >
    <property name= "typeAliasesPackage"  value= "com.how2java.pojo"  />
    <property name= "dataSource"  ref= "dataSource" />
    <property name= "mapperLocations"  value= "classpath:com/how2java/mapper/*.xml" />
</bean>

4.<!-- 扫描com.how2java.mapper -->

<bean  class = "org.mybatis.spring.mapper.MapperScannerConfigurer" >
    <property name= "basePackage"  value= "com.how2java.mapper" />
</bean>

注:ApplicationContext.xml中的配置信息,是将CategoryMapper和Category.xml关联起来。

三、springMVC.xml

1.<!-- 声明注解 -->

  <context:annotation-config/>

2.<!-- 扫描包,获取controller下面的注解声明 -->

<context:component-scan base- package = "com.how2java.controller" >
    <context:include-filter type= "annotation"
        expression= "org.springframework.stereotype.Controller" />
</context:component-scan>

3.<!-- 注解驱动 -->

  <mvc:annotation-driven />

4.<!-- 访问静态页面 -->

<mvc:default-servlet-handler />

5.<!-- 视图定位 --> 

<bean  class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
    <property name= "viewClass"  value= "org.springframework.web.servlet.view.JstlView"   />
     <property name= "prefix"  value= "/WEB-INF/jsp/"  />
     <property name= "suffix"  value= ".jsp"  />
</bean>

四、原理解析

1. 首先浏览器上访问路径 /listCategory
2. tomcat根据web.xml上的配置信息,拦截到了/listCategory,并将其交由DispatcherServlet处理。
3. DispatcherServlet 根据springMVC的配置,将这次请求交由CategoryController类进行处理,所以需要进行这个类的实例化
4. 在实例化CategoryController的时候,注入CategoryServiceImpl。 (自动装配实现了CategoryService接口的的实例,只有CategoryServiceImpl实现了CategoryService接口,所以就会注入CategoryServiceImpl)
5. 在实例化CategoryServiceImpl的时候,又注入CategoryMapper
6. 根据ApplicationContext.xml中的配置信息,将CategoryMapper和Category.xml关联起来了。
7. 这样拿到了实例化好了的CategoryController,并调用listCategory方法
8. 在listCategory方法中,访问CategoryService,并获取数据,并把数据放在"cs"上,接着服务端跳转到listCategory.jsp去

9. 最后在listCategory.jsp 中显示数据





  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值