分类: Java

Dozer 进阶

如果想在项目中用 dozer ,需要了解一些高级配置,例如:配置、全局配置、属性排除、枚举类型处理,字符转日期,集合类型处理,事件监听,等等。因为项目中不打算用dozer了,原因是我们的项目需要bean转换的地方不多,暂时就不给程序员增加工作量了,对 dozer的研究停止了,下面是一些有用的链接:5.5.1官网:http://dozer.sourceforge.net/新版本首页:https://

Dozer 介绍

dozer 是什么?说简单点,它就是个高级的 BeanUtils 。它可以实现 一个 java bean 到 另一个 java bean 的数据拷贝和类型转换等功能。

Dozer 的版本

Dozer 是个小众的框架,国内资料匮乏,版本也稍微有点混乱。我遇到的版本分别为:老版本5.5.4,错误的新版本6.1.0,真正的新版本6.0.0,以及猜测出来的版本 6.1.0,下面来详细说一下这些版本,以及我是怎么找到的。

Activiti 5.22.0 数据库的每个表作用

最新版请到:https://www.devdoc.cn/activiti-table-summary.htmlThe database names of Activiti all start with ACT_. The second part is a two-character identification of the use case of the table. This use case will also roughly match the service API.ACT_RE_*: RE stands for repository. Tables with this prefix contain static information such as process definitions and process resources (images, rules, etc.).ACT_RU_*: RU stands for runtime. These are the runtime tables that contain the runtime data of process instances, user tasks, variables, jobs, etc. Activiti only stores the runtime data during process instance execution, and removes the records when a process instance ends. This keeps the runtime tables small and fast.ACT_ID_*: ID stands for identity. These tables contain identity information, such as users, groups, etc.ACT_HI_*: HI stands for history. These are the tables that contain historic data, such as past process instances, variables, tasks, etc.ACT_GE_*: general data, which is used in various use cases.以上来自官网,下面自己整理一些。ACT_RE_*:RE表示Repository资源库,保存流程定义,模型等设计阶段的数据。ACT_RU_*:RU表示Runtime运行时,保存流程实例,任务,变量等运行阶段的数据。ACT_HI_*:HI表示History历史,保存历史实例,历史任务等流程历史数据。ACT_ID_*:ID表示Identity身份,保存用户,群组,关系等组织机构相关数据。(Activiti中的组织机构过于简单,仅用于演示。)ACT_GE_*:GE表示General通用,属于一些通用配置。其他:ACT_EVT_LOG和ACT_PROCDEF_INFO没有按照规则来,两者分别属于HI和RE。

Spring Boot HttpMessageConverter 配置

在没有Spring Boot的时候,Spring MVC的HttpMessageConverter配置一般都是在xml中,现在没有了xml,只能在class中配置,代码如下:import java.util.List;import org.springframework.context.annotation.Configuration;import org.springframework.http.converter.HttpMessageConverter;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter4;@Configurationpublic class WebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(new FastJsonHttpMessageConverter4()); //全局控制,解决当对象存在引用时,序列化后的结果浏览器不支持的问题。 JSON.DEFAULT_GENERATE_FEATURE = SerializerFeature.DisableCircularReferenceDetect.getMask(); //局部控制 //JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect); }}

Spring Boot Maven打包错误

在本地创建了工程,一直都是通过IDE编译(STS)和运行,今天在预生产服务器上配置运行环境,maven打包时竟然失败了。报错信息如下:

Spring Boot 启动和停止Shell脚本

晚上加班写了个Spring Boot应用启动和停止的Shell脚本。脚本使用语法:#输出使用语法spring-boot-ctrl.sh#启动spring-boot-ctrl.sh start#停止spring-boot-ctrl.sh stop# 脚本名字可以根据工程修改

Spring Boot HelloWorld

Maven依赖:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version></parent><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency></dependencies>

Spring Data JPA 多条件查询

Spring Data JPA 查询很方便,但做搜索功能时,条件比较多,而且条件可输入可不输入,这时候就不能用方法命名的方式查询,可以自己写JPQL,但条件多了简直就是作死,以前写过下面的代码://条件必填SELECT * FROM UserModel AS u WHERE u.sex = :sex AND u.age = :age//条件可选查询SELECT * FROM UserModel AS u WHERE (u.sex = :sex OR :sex == null) AND (u.age = :age OR :age == null)

获取 Spring ApplicationContext

总有一些类不在Spring容器的控制范围内,又想用其中的bean。上一次遇到场景是在项目中定义Hibernate拦截器。这次是在 HttpSessionListener 中保存数据到DB。在Web中获取ServletContext 中 ApplicationContextApplicationContext ac = WebApplicationContextUtils.getRequiredWe