• spring MVC 注解--非注解方式


    一:基于xml 的配置方式
    1 在web.xml中添加如下配置
    <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 设置加载的springMVC 配置文件 默认文件在WEB-INF下[servletName-servlet.xml] -->
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/config/springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    通常会用监听器来监听启动spring 的父容器application-context.xml ,父上下文容器不能访问子上下文容器中内容,
    事务的Bean在父上下文容器中,无法访问子上下文容器中内容,就无法对子上下文容器中Action进行AOP(事务)

    2 springmvc.xml 配置:
    <?xml version="1.0" encoding="UTF-8"?>

    <beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" >

    <!-- MVC 配置 -->
    <bean id="myaction" class="com.action.MyAction">
    <!-- <property name="commandClass">
    <value>com.vo.User</value>
    </property> -->
    </bean>

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
    <props>
    <prop key="start.do">myaction</prop>
    <prop key="what.do">myaction</prop>
    <prop key="login.do">myaction</prop>
    </props>
    </property>
    </bean>

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

    3 action 层的配置内容:
    public class MyAction extends AbstractController{
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
    HttpServletResponse arg1) throws Exception {
    System.out.println("sdfas");
    //WebApplicationContextUtils.getWebApplicationContext(ServletContext);
    return null;
    }
    }

    二: 基于注解的spring mvc 配置:
    1 web.xml 中的配置不变
    2 springmvc-annocation.xml 中的配置:
    <?xml version="1.0" encoding="UTF-8"?>  
    <beans  
        xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:tx="http://www.springframework.org/schema/tx"  
        xmlns:context="http://www.springframework.org/schema/context"    
        xmlns:mvc="http://www.springframework.org/schema/mvc"    
        xsi:schemaLocation="http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
        http://www.springframework.org/schema/tx   
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
        http://www.springframework.org/schema/context  
        http://www.springframework.org/schema/context/spring-context-3.0.xsd  
        http://www.springframework.org/schema/mvc  
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    <!-- MVC 配置 -->
    <!-- 自动扫描的包名 --> 
    <context:component-scan base-package="com"></context:component-scan>

    <!-- 默认的注解映射的支持 -->  
    <context:annotation-config />

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

    3 action 中的配置:
    @Scope("prototype")//设置action 类采用原型,避免单例模式
    @Controller
    @RequestMapping(value="user")//
    1、标注控制器映射1
    public class ActionAnnotation {
    //@Autowired//@Autowired是基于对象类型注入
    @Resource(name="test")//@Resource是基于对象名称注入  2窄化映射
    private ServiceTest st;
    @RequestMapping("/login.htm")
    public String testAnnotation(){
    System.out.println("adf");
    st.service();
    return null;
    }
    public ServiceTest getSt() {
    return st;
    }
    public void setSt(ServiceTest st) {
    this.st = st;
    }
    }

    三:备注

    <context:component-scan/> 扫描指定的包中的类上的注解,常用的注解有:

    @Controller 声明Action组件
    @Service    声明Service组件    @Service("myMovieLister") 
    @Repository 声明Dao组件
    @Component   泛指组件, 当不好归类时. 
    @RequestMapping("/menu")  请求映射
    @Resource  用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName") 
    @Autowired 用于注入,(srping提供的) 默认按类型装配 
    @Transactional( rollbackFor={Exception.class}) 事务管理
    @ResponseBody
    @Scope("prototype")   设定bean的作用域


  • 相关阅读:
    安装Kali Linux虚拟机02
    前端入门之——知识补充 day11
    套接字编程知识回顾01
    关于js中 document.body.scrollTop 不能返回正确值的原因
    前端入门之——后台管理页面布局 学习 day10
    前端入门之——jquery day9
    pickle序列化与反序列化 + eval说明
    json序列化与反序列化
    项目中日志输出常用的设置
    logging模块基础3
  • 原文地址:https://www.cnblogs.com/leonkobe/p/3529225.html
Copyright © 2020-2023  润新知