Skip to content

Instantly share code, notes, and snippets.

View yanhua365's full-sized avatar

yanhua365 yanhua365

View GitHub Profile
@yanhua365
yanhua365 / CustomerDomainPropertyEditorController.java
Last active December 31, 2015 00:28
在Spring MVC的Controller里注册一个转换领域对象的PropertyEditor。
@InitBinder
public void initBinder(WebDataBinder binder) {
//下面是自定义一个日期转换的PropertyEditor
//SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
//dateFormat.setLenient(false);
//binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
//定义UpdateTemplate转换的PropertyEditor
binder.registerCustomEditor(UpdateTemplate.class, new PropertyEditorSupport() {
@yanhua365
yanhua365 / XmlParserAndBase64Decode.groovy
Last active December 30, 2015 20:59
找出一个XML文件下的info元素的param属性,并解码base64重新保存到另外一个文件中
/**
* 找出一个XML文件下的info元素的param属性,并解码base64重新保存到另外一个文件中
*/
def root = new XmlParser().parse(new File("a.xml"))
root.actions.action.infos.info.each{
if(it.'@param'){
it.'@param' = new String(it.'@param'.decodeBase64())
}
@yanhua365
yanhua365 / JAXB2MarshallerSample.java
Last active December 30, 2015 07:59
JAXB2反序列化XML到JavaBean,以及序列化到字符串的功能。
private String coverToXml(FilesInfoBean info) {
StringWriter writer = new StringWriter();
try {
JAXBContext context = JAXBContext.newInstance(info.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); //格式化
marshaller.marshal(info, writer);
} catch (JAXBException e) {
e.printStackTrace();
}
@yanhua365
yanhua365 / UpdateServerControllerTest.java
Created December 4, 2013 03:42
Spring MVC测试返回XML结果的控制器
package com.kingsoft.wpsess.update.controller;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import com.kingsoft.wpsess.update.service.UpdateService;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
@yanhua365
yanhua365 / build.gradle
Created December 3, 2013 10:18
一个典型的gradle的web工程的build文件
apply plugin: 'war'
apply plugin: 'jetty'
repositories {
mavenCentral()
maven { url "http://repo.spring.io/libs-milestone" }
maven { url "https://repository.jboss.org/nexus/content/repositories/releases" }
}
dependencies {
@yanhua365
yanhua365 / svn_update.bat
Created December 1, 2013 13:13
TortoiseSVN提交多个目录的bat脚本
TortoiseProc /command:update /path:"D:/myprj/src*D:/myprj/resource
@yanhua365
yanhua365 / svn_commit.bat
Created December 1, 2013 12:38
用Tortoise提交多个目录的BAT脚本
TortoiseProc /command:commit /path:"D:/workspace/myprj/src/com/abc/common" /closeonend:0
TortoiseProc /command:commit /path:"D:/workspace/myprj/resources/css" /closeonend:0
@yanhua365
yanhua365 / config_edit.ftl
Last active December 29, 2015 15:19
Freemarker和Bootstrap结合高亮显示单个输入验证错误的消息
<#--
* 结合bootstrap的样式,有错误的时候高亮显示字段
* config是表单绑定的模型对象,targetVersion是它的一个属性
-->
<@spring.bind "config.targetVersion"/>
<#assign error>
<#if spring.status.errorMessages?has_content>error</#if>
</#assign>
<div class="control-group ${error}">
<label class="control-label" for="inputTargetVersion">升级后版本</label>
@yanhua365
yanhua365 / spring-jpa-datasource-h2.xml
Created November 26, 2013 07:52
Spring JPA中的各种数据库连接配置
<!-- H2的混合模式 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.h2.Driver" />
<!--<property name="url" value="jdbc:h2:~/databases/mydb" />-->
<property name="url" value="jdbc:h2:file://D:\h2\mydb;AUTO_SERVER=TRUE;USER=SA;" />
</bean>
<!-- H2的内存模式 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
@yanhua365
yanhua365 / gist:7652773
Created November 26, 2013 02:52
用Guava实现一行代码从classpath中读取文件内容
String json = Resources.toString(Resources.getResource("com/mycompany/test/fixture/config_fixture.json"), Charsets.UTF_8);