springmvc框架整理

1.spring MVC环境搭建
1.jar包引入
spring*.jar、commons-logging*.jar、commons-connections*.jar、mybatis*.jar、mybatis-spring*.jar
2.web.xml配置
1、spring控制器
<servlet>  
  <servlet-name>dispatcher</servlet-name>  
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  <init-param>   
  <param-name>contextConfigLocation</param-name>   
  <param-value>classpath:dispatcher.xml</param-value>   
  </init-param>    
   <load-on-startup>1</load-on-startup>  
</servlet>  
<servlet-mapping>  
   <servlet-name>dispatcher</servlet-name>  
   <url-pattern>/</url-pattern>  
</servlet-mapping> 
2、spring监听
    <listener>     
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener> 
3、Spring配置文件
   <context-param>  
<param-name>contextConfigLocation</param-name>  
<param-value>classpath:applicationContext.xml</param-value>  
    </context-param> 
3.spring MVC模式的contextConfigLocation配置文件配置
2.spring注解
1.@Autowired
    1.在配置文件里添加配置:<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
    2.@Autowired注解可以出现在变量前,也可以出现在方法前。该注解表示该变量或方法参数的注入,不需要再配置文件里显示声明,有了这个注解,spring会自动
在配置文件里查找匹配的bean注入到该变量或方法的参数中去,如果没能找到就会抛出异常。该注解是按照参数类型来查找的,如果bean的配置文件里有多个该类型的bean时,使用该注解也会抛出异常。


2.@Qualifier(bean的id值)
为了解决@Autowired注解找到多个同类型的bean时抛异常的情况,使用@Qualifier注解指定要注入的bean。这样spring的自动注入就从按类型注入变为按id注入。
3.@Resource
1.在配置文件里添加配置<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
  2.@Resource注解是JSR-250规范定义的自动注入的注解方式,不带参数默认是按类型注入。可以bean的名称注入,方式是@Resource(name = “bean的id值”)。
4.@PostConstruct
    该注解用在方法前,表示当该类被spring容器创建实例时,被该注解标注的方法就会被执行。
5.@PredDestroy
    该注解用在方法前,表示当该类的实例被spring容器销毁时,被该注解标注的方法就会被执行。
6.@Respository(bean的名称)
    该注解只能作用在持久层类上,作用是标记该类为bean,不需要在配置文件里配置bean。且可以将该类抛出的数据访问异常封装为spring数据访问异常。
注解的参数可以不带。
7.@Component(bean的名称)
    该注解仅仅标注该类是个bean,无需在配置文件里配置。注解的参数可以不带。
8.@Service(bean的名称)
该注解一般作用在service层,功能和@Component相同。注解的参数可以不带。
9.@Controller(bean的名称)
    该注解一般作用在控制层,功能和@Component相同。注解的参数可以不带。
10.@Scope(参数)
    该注解用于标注该bean的作用域,参数可以是singleton表示spring容器中该类的实例是单例;参数prototype表示spring容器在创建该类的实例时每一次都创建一个
新的实例;参数request表示spring创建的实例在一次请求中有效;参数session表示在一个用户会话中有效;参数globalsession表示在全局所有会话中有效。
11.@RequestMapping
    有多个参数value、method、headers、params。value参数的值表示url路径,method表示表单数据提交方式,headers一般在method是post方式时使用,params表示url路径中
必须或不能出现的参数。该注解可以出现在类体外面,也可以出现在方法外面。出现在类体外,表示访问该类的所有url中都必须带有该注解中value值;出现在方法外面,表示访问该方法的所有url中都必须带有注解中的value值。如果类外使用的注解中value的值中有“.do”或者“.html”,则方法外的注解不能设value值,可以使用param设置来调用到指定方法。
12.@ResponseBody
使用该注解需要在dispatcher.xml配置文件里配置<mvc:annotation-driven/>。该配置项告诉spring使用AnnotationMethodHandlerAdapter来处理@ResponseBody。
AnnotationMethodHandlerAdapter根据request haader的Accept的值和HttpMessageConverter的mediaType匹配,将Accept的第一个值写进response的content-type中。这个标签会将
返回的对象转成相应的格式,放入response的body中。
13.@RequestBody
另:使用<context:annotation-config/> 简化配置<context:annotationconfig/> 将隐式地向 Spring 容器注册AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、PersistenceAnnotationBeanPostProcessor 以及equiredAnnotationBeanPostProcessor 这 4 个 BeanPostProcessor。
dispatcher.xml配置:
context:component-scan该标签告诉spring自动扫描base-package下的java文件将@Component、@Controller、@Service等注册为bean;
14.@InitBinder
该注解用户处理action收到的请求字符串,可以对请求的字符串格式的日期及数字做转换处理,可以按自定义要求转成Date等类型

15.@Scheduled(cron="")
用在bean的方法前,表示该方法是个定时任务。
cron参数规则:秒 分 时 天 月 星期,
“秒”的值可以是0到59,或者a-b/n表示a到b范围(0<=a<b<60)内每隔n秒,或者*
“分”的值与“秒”类似,范围是0-59
“时”的值与“秒”类似,范围是0-23
“天”的值与“秒”类似,范围是1-31
“月”的值与“秒”类似,范围是1-12
“星期”的值是mon、tue、wed、thu、fri、sat、sun
3.spring依赖注入
listener、filter、servlet都不归spring管理,不能在里面使用spring注解,spring注入,被注入的对象必须注册为bean,否则注入失败。


4.什么是spring上下文?
spring上下文即spring容器,是spring可以管理的所有资源,包括控制层,服务层,持久层,事务等的bean。spring的上下文有父子上下文之分,父上下文一般包括服务层、持久层、事务的bean,父上下文的配置文件一般是由spring监听器加载;
spring的子上下文一般指spring的Action,子上下文是由spring的DispatcherServlet加载。一般来说spring的mvc有严格的层级关系,这样易于维护和拓展,父上下文是不允许访问子上下文资源的;
5.spring AOP
AOP即Aspect Oriented Programming,意思是面向方面编程;



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值