springmvc

springmvc学习笔记(19)-RESTful支持

旧时模样 提交于 2019-12-04 08:50:34
springmvc学习笔记(19)-RESTful支持 标签: springmvc [TOC] 本文介绍RESTful的概念,并通过一个小例子展示如何编写RESTful风格的controller和配置前端控制器,最后展示静态资源的解析 概念 首先附上两篇博客链接 理解RESTful架构 - 阮一峰的网络日志 RESTful API 设计指南- 阮一峰的网络日志 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 RESTful(即Representational State Transfer的缩写)其实是一个开发理念,是对http的很好的诠释。 1.对url进行规范,写RESTful格式的url 非REST的url: http://...../queryItems.action?id=001&type=T01 REST的url风格: http://..../items/001 特点:url简洁,将参数通过url传到服务端 2.http的方法规范 不管是删除、添加、更新,等等。使用url是一致的,如果进行删除,需要设置http的方法为delete,其他同理。 后台controller方法:判断http方法,如果是delete执行删除,如果是post执行添加。 3.对http的contentType规范

Spring Cloud--Honghu Cloud分布式微服务云系统—组件化

北城余情 提交于 2019-12-04 06:41:02
Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的。在学习Spring Cloud之前大家必须了解一下相关项目,希望可以帮助到大家。 Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。 Spring Cloud Bus ​事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。 Eureka 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。 Hystrix 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。 Zuul Zuul是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。 Archaius 配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。 Consul 封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

spring 项目中的一个异常

前提是你 提交于 2019-12-04 05:37:18
今天把自己的一个 Demo 项目,Maven中更新依赖包后,直接报下面错误: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281) Incompatible 英文是矛盾的意思,也就是有冲突,再看后面的错误:ClassMetadataReadingVisitor has interface ClassVisitor,也就是说 ClassMetadataReadingVisitor 实现了 ClassVisitor 接口,但是貌似这里出现了问题,于是我看Spring中2个版本的源码,发现了变化。在 Spring 3.0.6中: class

springmvc 实现注解式权限验证

主宰稳场 提交于 2019-12-04 03:10:05
对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现。但借助于Spring MVC中的action拦截器我们可以实现注解式的权限验证。 一.首先介绍一下action拦截器: HandlerInterceptor是Spring MVC为我们提供的拦截器接口,来让我们实现自己的处理逻辑,HandlerInterceptor 的内容如下: public interface HandlerInterceptor { boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception; void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception; void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object

SpringMVC参数绑定那些事

做~自己de王妃 提交于 2019-12-03 22:14:21
@RequestParam @ModelAttribute @RequestBody 简单类型,复杂类型 get;post:form-data x-www-form-urlencoded 简单参数绑定 @RequestMapping("test1") @ResponseBody public String test1(@RequestParam String p, @RequestParam Date date) { return p+"#"+date; } 通过get方式访问(post:x-www-form-urlencoded一样) 解析@RequestParam参数通过RequestParamMethodArgumentResolver。 先获取参数名 根据@RequestParam中的值来确定参数名,如果没有则使用原来的参数名 解析参数 RequestParamMethodArgumentResolver#resolveName String[] paramValues = request.getParameterValues(name); 就是从request中获取值,注意返回的是String[],可能是相同name放到一个数组中? 类型转换 使用WebDataBinder,其中有typeConverter(TypeConverterSupport)

搭建分布式架构2--CentOs下安装Tomcat7(环境准备)

家住魔仙堡 提交于 2019-12-03 21:10:20
声明:因为运行环境是基于linux系统的,在做此框架之前需要做一些前期的环境准备工作 CentOs下安装Tomcat7网上很多实例,因为博客后期作为框架的原生教程,故这边做详细的安装记录,我这边已经下载好了Tomcat7,通过ssh已经上传到指定的目录,这里直接讲解安装的过程。 1. 安装tomcat 通过ssh将apache-tomcat-7.0.61.tar.gz文件上传到/usr/local中执行以下操作: [root@cloud /] cd /usr/local [root@cloud /] tar -zxvf apache-tomcat-7.0.61.tar.gz [root@cloud /] mv apache-tomcat-7.0.61 tomcat 2. 启动Tomcat [root @cloud ~]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /home/java/jdk1.7/ Using CLASSPATH: /usr/local/tomcat/bin

Springmvc与jasperreport结合生成报表的一种方法

落爺英雄遲暮 提交于 2019-12-03 14:22:50
项目原因需要在springmvc的基础上整合jasperreports生成报表。其实springmvc已经提供了对jasperreports的支持,感觉springmvc采用的一个比较好的方式是将报表的生成作为一个view处理,但是需要对每一种报表配置他的jasperreports模板及视图的映射,这样的话添加报表必须变更配置,比较麻烦,所以自己想了一个方法来避免这种配置,代码可以很容易和spring整合起来。 japserreports生成报表基本流程其实就是根据一个模板和数据源生成一个中间类型,然后可以在此基础上可以导出几种格式。我的想法是提供方法供springmvc的controller调用产生中间文件,然后在view里面向客户端导出请求的格式。 首先是ReportPrint类,很简单,只是包含一个 JasperPrint对象(既上述的中间文件),代码很简单,不解释 public class ReportPrint { JasperPrint jasperPrint = null; public JasperPrint getJasperPrint() { return jasperPrint; } public void setJasperPrint(JasperPrint jasperPrint) { this.jasperPrint = jasperPrint; } }

在普通类中调用Service,Dao的方法

烂漫一生 提交于 2019-12-03 12:27:06
本方法摘取自开源项目: ThinkGem 王震 / JeeSite https://git.oschina.net/thinkgem/jeesite 首先引入jar包 创建SpringContextHolder类 /** * Copyright © 2012-2013 All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); */ package com.code.platform.common.utils; import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.DisposableBean; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * 以静态变量保存Spring ApplicationContext,

微信公共平台开发者url/token 认证(springmvc3.2.4)

主宰稳场 提交于 2019-12-03 06:32:21
bae升级到3,所以转战到sae。 在此,记录一下遇到的问题。 sae java环境, 1.jdk1.6,服务器jetty7.x 2.自己上传的项目里面的jar包不能跟sae上的冲突。 因为自己的项目是maven构建,用到了dom4j,maven的自动依赖下载功能将相应的xml-apis的jar包也自动下载了。 可但是,xml-apis这个jar包跟sae环境上的是冲突的,就会导致项目在本地正常运行,部属到服务器上就出现503等一些列的错误。 不得不说,maven有的时候还真会帮了倒忙。 幸好会谷歌,得到的解决方法就是 <!-- dom4j --> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> <exclusions> <exclusion> <artifactId>xml-apis</artifactId> <groupId>xml-apis</groupId> </exclusion> </exclusions> </dependency> 这样就可以避免xml-apis 自动被下载了 云服务器上没什么问题了,微信公共平台 url/token 验证又有问题了(后台用的是springmvc3.2.4) @RequestMapping

SpringMVC + MyBatis整合

ε祈祈猫儿з 提交于 2019-12-03 06:08:33
环境:spring3.1.1+mybatis3.2.8+mybatis-spring1.2.3 网络上关于这个架构的搭建文章,实在是太多了,本文是对于本人初次搭建时的一些注意点的整理。 主要是一些配置文件的内容和架构的目录。 0. project 目录 1. spring-resources.xml 这个文件是用来完成spring和mybatis的整合的xml。注意properties文件的读入方式。 <?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http:/