springmvc

快速JavaEE轻量级框架&公用业务模块 设计&实现 7

隐身守侯 提交于 2020-02-28 12:01:44
这部分的代码在 http://git.oschina.net/terrymanu/miracle-framework/tree/master/miraclesea/framework-webmvc 这个部分写的比较晚了,本来是设计的时候应该写的,但是因为当时写这个项目的时候,还没想好需要往这个模块中放什么。 现在随着rbac模块的开发,渐渐的想到了一些可以提取出来的东西。 目前第一版,只支持rest api,以后会考虑支持freemarker。 1. 首先是一个流程。基本的CRUD都有一些标准流程。 如,增加一个实体的时候,首先要validate这个实体,其次通过业务方法从数据库中查询,判断这个实体是否打破了业务规则(如:唯一的用户名),如果失败,则返回相应的错误代码,如果成功。则返回正确的。 2. 基于这个流程,需要定义一个BaseResponse,用于封装Http状态码和业务对象。springmvc虽然提供了ResponseEntity,但是并没有可以放入error以及warn的地方。所以需要扩展一下。 所以现在新增加了两个包,com.miraclesea.webmvc.vo,用于存放 BaseResponse ;com.miraclesea.webmvc.controller用于存放模板逻辑。 其中核心的代码在AsyncBaseMangementController这个类中

springmvc hibernate jvm permGen Space

一个人想着一个人 提交于 2020-01-07 18:08:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近项目突然出现了“java.lang.OutOfMemoryError: PermGen space”的错误,其实关于 PermGen space 错误的解释,网上已经有很多了,摘录一段 PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大 量的第三方jar, 其大小超过了jvm默认的大小那么就会产生此错误信息了。 java其实并不推荐大量使用反射来构造对象 很多人都把这个错误的原因,很大程度上都归结于使用了spring hibernate……,因为他们动态产生类(java反射),导致溢出(spring在AOP的时候使用CBLIB会产生很多类,hibernate反射也会产生很多类 ) 原因是:

springmvc常用注解标签

大憨熊 提交于 2020-01-07 09:31:34
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 使用 @ModelAttribute 和 @SessionAttributes 传递和保存数据 SpringMVC 支持使用 @ ModelAttribute 和 @ SessionAttributes 在不同的模型(model)和控制器之间共享数据。 @ModelAttribute 主要有两种使用方式,一种是标注在方法上,一种是标注在 Controller 方法参数上。 当 @ ModelAttribute 标记在方法上的时候,该方法将在处理器方法执行之前执行,然后把返回的对象存放在 session 或模型属性中,属性名称可以使用 @ ModelAttribute (“attributeName”) 在标记方法的时候指定,若未指定,则使用返回类型的类名称(首字母小写)作为属性名称。关于 @ModelAttribute 标记在方法上时对应的属性是存放在 session 中还是存放在模型中, 当我们请求 /myTest/sayHello.do 的时候使用 @ModelAttribute 标记的方法会先执行,然后把它们返回的对象存放到模型中。最终访问到 sayHello 方法的时候,使用 @ModelAttribute 标记的方法参数都能被正确的注入值。 来源: oschina 链接: https://my

Spring Cloud云服务

旧城冷巷雨未停 提交于 2020-01-07 06:25:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 上一篇我们介绍了《整合spring cloud云服务架构 - HongHu云架构common-service代码结构分析》,本节我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来参考学习。 首先在构建spring cloud的common-service之前,我们需要准备的技术: Maven(项目构建)、Spring Boot、Spring Cloud、微服务概念、去中心化思想、分布式等,针对于common-service的顶级项目,这里我们主要使用Maven来构建,闲话少说,我们直接上代码是最直观的。 1. 创建一个Maven的顶级项目,其中pom.xml文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

Fastjson、Jackson与SpringMVC整合的MessageConverter配置

拈花ヽ惹草 提交于 2019-12-30 15:30:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.Jackson maven依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.7.1</version> </dependency> springmvc-servlet.xml中配置 <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> </mvc:message-converters> </mvc:annotation-driven> 2.FastJson

SpringMVC项目集成Activiti Modeler(Activiti5.20版本)

拟墨画扇 提交于 2019-12-27 18:45:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Activiti版本是5.20,Modeler模块跟5.16.4之前变化很大,相关的API已经大变样。 假设已经有SpringMVC的项目,只需要把以下文件复制到自己的项目中,包名可以改,但是在自动搜索类的时候请指定包路径。 配置文件如下: <bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper" /> <context:component-scan base-package="edu.xxx.web.rest" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> Modeler相关的Rest入口 以上三个文件,我放到项目中的: edu.xxx.web.rest 这个位置。 Modeler相关的页面文件 app-cfg.js文件也需要修改下,指定contextRoot为 /项目/service 以上截图中使用到的Activiti源码项目中的文件,可以到这里下载:

SpringMVC4+hibernate遇到 readOnly问题FlushMode.MANUAL

≯℡__Kan透↙ 提交于 2019-12-24 18:02:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 错误类型: HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition. 尝试解决方案 1:在web.xml下配置如下代码(行不通) <filter> <filter-name>openSession</filter-name> <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> <init-param> <param-name>sessionFactoryBeanName</param-name> <param-value

springcloud架构搭建(一) Eureka服务器搭建及配置

风流意气都作罢 提交于 2019-12-21 16:44:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> springcloud架构搭建(一) Eureka服务器搭建及配置 今天开始准备学习一下springcloud的相关知识以及环境部署,并且搭建一套springcloud分布式框架: 本文只针对刚开始接触或者没有接触过springcloud的小白 如果下面有什么不足之处请大家及时指出 写这个博客的目的主要是为了大家共同学习交流、共同进步 第一步,创建一个普通的springboot项目 以下方法都可以快速创建一个boot项目: 1. 浏览器访问 http://start.spring.io/ ,填写信息,下载zip包,加压到你的ide的工作空间直接使用。 2. 使用idea自动生成boot项目(如果没创建过自行百度……) 3. 使用eclipse创建boot项目(如果没创建过自行百度……) 第二步,在pom.xml中添加依赖(以下是我的完整依赖) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org

org.apache.ibatis.binding.BindingException

痞子三分冷 提交于 2019-12-19 00:28:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 环境:spring3.1.1+mybatis3.2.8+mybatis-spring1.2.3 SpringMVC + MyBatis整合,出现下面的错误: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): org.com.mars.dao.test.UserDao.queryUserById 可能的原因是: 1. 请检查mapper.xml文件路径是否配置正确。 <!-- 创建SqlSessionFactory,同时指定数据源 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 --> <property

SpringMVC源码剖析(二)- DispatcherServlet的前世今生

橙三吉。 提交于 2019-12-15 18:47:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 上一篇文章 《SpringMVC源码剖析(一)- 从抽象和接口说起》 中,我介绍了一次典型的SpringMVC请求处理过程中,相继粉墨登场的各种核心类和接口。我刻意忽略了源码中的处理细节,只列出最简单的类甚至是接口类,目的就是让大家先从最高层次的抽象意义上来审视SpringMVC这个框架;我也刻意将SpringMVC和Struts2做对比,目的是让大家看到,SpringMVC究竟吸取了Sturts2设计思想中的哪些精华,又弥补了它的哪些遗憾。 DispatcherServlet作为SpringMVC的核心之中的核心类,再怎么强调它的重要性也不为过。SpringMVC所有的核心类和接口,都密集地出现在DispatcherServlet的源码中,SpringMVC源码剖析,很大程度上可以说也是在剖析DispatcherServlet这一个类。这一篇文章里,我先说几点关于DispatcherServlet的前世今生,希望能帮助你更好的理解它。 1.对扩展开放,对修改封闭 SpringMVC是一个基于著名的Open-Closed,即开闭原则进行设计的框架。在Spring官方文档里面关于SpringMVC的介绍开宗明义地进行了说明: A key design principle in Spring Web MVC and