`
文章列表

simen_net的StrongWord

这篇文章我想介绍一下simen_net的StrongWord项目。   simen_net的StrongWord项目和我的“缘分”始于2010年,当时我开始学习ExtJS,苦于无法找到一个完整的项目系统的入门,然后在JavaEye(当时还没改名)上搜索到了simen_net的这个帖子,被帖子上的华丽的截图闪瞎了,因为那时simen_net并没有提供java源代码(后来提供了),因此将附件下载下来后并不能重新搭建起这个项目,于是我只能用文本编辑器看看js,看看人家是怎么写ExtJS代码的,从这些零散的js文件中,我看到了大量的Ext.extend用法和freemarker的${}用法,当时觉得 ...
公司有个项目,采用DB2数据库,持久化技术为Hibernate。 近期有个同事发现Hibernate生成的分页SQL语句查询速度很慢,凭经验,他在该sql语句后面加上了 fetch first 10 rows only 查询速度一下子提高上去了,因此他在Hibernate中的Query调用中增加了.setFetchSize(10)。但是发现Hibernate解析出来的sql并没有增加上面的fetch子句。 其实这个问题的原因在于Hibernate的Dialect不正确,一般的,我们会选择org.hibernate.dialect.DB2Dialect,但其实应该选择org.hiberna ...
2.4节. Sending Messages中有一段看了好多遍才理解 "A better way of thinking about the exchange and routing key properties is that the explicit method parameters will always override the template's default values. In fact, even if you do not explicitly set those properties on the template, there are always def ...
<bean id="stockServiceGateway" class="org.springframework.amqp.rabbit.stocks.gateway.RabbitStockServiceGateway"> <property name="rabbitTemplate"> <rabbit:template connection-factory="connectionFactory" routing-key="app.stock.request&q ...
刚才在看Hibernate 4.1.0.Final的Getting Started Guide的时候,测试JPA代码时发现报错,原因是我将文档中的3个模块,hbm、annotation、jpa合在一个工程里,导致有一个Event.hbm.xml和JPA对应的Event.java这个实体(Entity)混合在一起了,hbm中的主键对应列名为event_id,JPA中的主键对应列名为id,生成出来的建表语句既有event_id列又有id列,仅将id列作为primary key,测试insert代码时,发出的sql语句中没有包含event_id,导致报错。话说,这JPA启动时还会遍历一遍classpa ...

Apache Shiro学习

提起Java社区中的安全框架,大家的第一反应应该是Spring Security,我曾经在09年看《Spring In Action 2nd Edition》时,学习了一下,按照书中的Demo搭建了一个Web项目,深感其配置之繁杂,浅尝辄止,索性就没管它了。去年江南白衣在公布SpringSide4的路线图中提及将使用Apache Shiro替换Spring Security,我才第一次知道Apache Shiro这个东西,看了一圈评论,都是“大家都说好,谁用谁知道”之类的。因为实际项目中还没有关于安全框架方面的需求,所以也没有跟进,最近上头跟我说了一个需求,我觉得用安全框架可以满足,这才把学习A ...
Hibernate的源代码已经迁移至GitHub,使用Gradle构建,简单介绍一下如何使用Gradle构建Hibernate项目   下载Gradle,我最先下载的是gradle-1.0-milestone-7这个版本,后来编译时报错,见这个链接:https://gist.github.com/1632550,然后换成gradle-1.0-milestone-1,解压至/Applications/gradle/gradle-1.0-milestone-1,设置环境变量export GRADLE_HOME=/Applications/gradle/gradle-1.0-milestone- ...
本节介绍SpringMVC中的表单,demo演示访问一个表单提交页面,填写表单的内容后使用jQuery的Ajax提交表单,将返回的文本信息显示出来。 记得在Struts1中有个FormBean的东西封装表单内容,在SpringMVC中也有,只不过SpringMVC更松耦合,只要写一个POJO就可以了,而不需要继承框架关联的类,看一下这个FormBean(只列出了主要属性):   public class FormBean { @NotEmpty private String name; @Min(21) private int age; @DateTim ...
在FileUpload一文中,我们初步了解了SpringMVC中View的用法,在例子中,通过给Model添加一个属性(model.addAttribute()),View对应的JSP就可以获取该值。本文再介绍一些View对应JSP取值的方式。 增加一个Controller,ViewsController:   package org.springframework.samples.mvc.views; import javax.validation.Valid; import org.springframework.stereotype.Controller; import ...
本文介绍SpringMVC的验证(validation),在Convert一文中,我们知道SpringMVC能很方便的将提交的参数转成(convert)自定义的JavaBean,现在加入对JavaBean的验证,比如要求JavaBean的属性number(private Integer number)不允许为null且最大为5,属性date(private Date date)满足时间是未来的(今天以后的日期)。为此,pom.xml中需要添加两个依赖: <!-- JSR 303 with Hibernate Validator --> <dependency> ...
本文介绍SpringMVC中的异常处理,@Controller注解的方法可能由于各种各样的原因抛出异常,如果没有写try...catch()...语句,异常的堆栈信息将直接抛给浏览器,这样对用户来说很不友好,并且异常的堆栈信息可能含有一些敏感信息(如数据库的表字段,sql语句等等...)是不能暴露出去的。因此在程序中最好捕捉到所有的异常并处理后将友好的界面或者信息返回给客户端,SpringMVC提供了一个Handler,该handler指定一种异常,并返回一个view,举个例子,增加一个Controller,叫ExceptionController:   package org.spring ...
本文介绍SpringMVC中的Convert,Convert是我认为的SpringMVC最吸引人,最优雅的特性,下面通过例子程序领略一下: package org.springframework.samples.mvc.convert; import java.util.Collection; import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat. ...
本文接上一篇文章,介绍@RequestMapping中的headers属性,并进一步研究produces属性以及和它配对的consumes属性。 首先看看讲解用到的类: package org.springframework.samples.mvc.simple; import org.springframework.stereotype.Controller; import org.springframe ...
本文讲解Spring MVC的Response,深入了解一下@RequestMapping配合@ResponseBody的用法,同时介绍另外一个和Response有关的类ResponseEntity。 首先看看本文演示用到的类ResponseController: package org.springframework.samples.mvc.response; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframe ...
Linux下的shelle脚本(注意最后一行keytool命令位于$JAVA_HOME/bin下): md ca md client md server md jks openssl genrsa -out ca/ca-key.pem 2048 openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem - ...
Global site tag (gtag.js) - Google Analytics