
java
文章平均质量分 77
flyforlove
这个作者很懒,什么都没留下…
展开
-
由OpenSessionInView想到了。
无意间翻到一个N年前的老帖子([url]http://www.iteye.com/topic/17501[/url]),讨论的是OpenSessionInView的效率问题。我本人对Spring和Hibernate都没有什么经验,只是对于引起OpenSessionInView效率低的原因感兴趣。首先OpenSessionInViewFilter就是一个过滤器,那么它的执行时间也就是其后...2007-10-11 14:05:39 · 72 阅读 · 0 评论 -
Spring框架下的URL设计
实际上不管用任何框架,只要是不考虑用ajax,那么URL都不可能完全遵循RESTful,但是这不妨碍设计一套尽量RESTful,然后也不失实用性的URL规范。 如果使用Spring的话,尽量让请求mapping到具体方法上,而不是在方法里写分支。这样的话,可以使用以下规范 请求方法动作项目指定动作 请求按钮指定动作 URL 类方法 备考G...原创 2016-09-05 16:10:07 · 191 阅读 · 0 评论 -
Spring boot中使用@SessionAttributes需要注意的地方
在Spring Boot中,如果想把数据保存在session里,当然可以使用原生Request直接保存session,有个更方便的方法,那就是使用注解@SessionAttributes。使用这个注解,需要搞清楚它的运行原理,也就是什么时候保存,什么时候取出,否则当得出非期望的结果时会很疑惑。尤其当和注解@ModelAttribute混用的时候,需要搞清楚优先级。 1.Sessi...原创 2017-04-21 11:50:57 · 1819 阅读 · 0 评论 -
spring mvc启动过程简析(1)
Spring已经有点历史了,不过从来没有认真的看过。最近比较闲,便瞄了两眼Spring,用一个东西工作,自然是要先看看这东西内部是怎么构成的,否则用的时候,踩在坑里,也不知道如何跳出来。了解Spring最快的方法,当然是从启动开始。Spring和Struts一样,是通过一个Servlet来接管web服务的,首先看一下web.xml的定义 <?xml version="...原创 2016-02-01 15:00:58 · 135 阅读 · 0 评论 -
spring mvc启动过程简析(1)
上次大概讲了一下spring mvc的启动步骤,但是没有讲如何读取配置文件(servlet-context.xml)的,接下来着重讲一下这一步。先看一下servlet-context.xml的namespace xmlns="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/X...原创 2016-02-03 16:55:35 · 138 阅读 · 0 评论 -
关于classloader
jvm自带的三个classloader1.Bootstrap classloader,是jvm的一部分,由C写成,调用的是核心库。 sun java下,可以用以下语句查看调用类路径 URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs(); 写道%JAVA_HOME%/jre/lib/r...原创 2016-02-23 10:22:28 · 144 阅读 · 0 评论 -
内存中动态compile,load,invoke
java 6以,jdk里提供了一套编译方法类,可以动态编译java source。下面这个例子是编译字符串形式的source,直接得到编译后的class的字节进行load。 package jp.co.wqf;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io....原创 2016-02-23 16:19:57 · 155 阅读 · 0 评论 -
再看SoftReference和WeakReference
java中的SoftReference和WeakReference已经出来很久了,但是到现在为止开发的程序里几乎都没有直接用到它们。用不到,那就说明还没有碰到需要用它们的场景,当然也有一个原因,就是不知道怎么用。 简单来说,java中的引用默认都是强引用,只要当引用存在(就是能从根引用遍历到),GC就不会回收。有时候,我们无法自己决定还要不要用一个实例,可能需要根据情况决定,那...原创 2016-02-26 14:52:32 · 146 阅读 · 0 评论 -
关于java的lambda
先看一段代码public class Lambda { public static void main(String[] args) { System.setProperty("jdk.internal.lambda.dumpProxyClasses", "."); Function<Integer, String> fun1 = S...原创 2017-05-29 12:26:21 · 148 阅读 · 0 评论 -
Spring MVC
关于WebMvc的配置1.最暴力的配置方法就是直接继承WebMvcConfigurationSupport2.比较温柔的做法就是使用注解@EnableWebMvc这个注解是引入了DelegatingWebMvcConfiguration这样一个代理配置类,它继承了WebMvcConfigurationSupport,然后通过注入WebMvcConfigurer来进行配置,所以,只...原创 2017-06-05 13:55:54 · 204 阅读 · 0 评论 -
根据业务归类log文件
当业务比较复杂的时候,会希望按照业务来归类log文件,而不是放到一个文件里。比如说,我希望按照cotroller单位去划分log文件,并且设定每个log文件的size是10MB,那么可以做一下设置。<?xml version="1.0" encoding="UTF-8"?><configuration> <include resource="org/...原创 2017-06-19 10:11:10 · 419 阅读 · 0 评论 -
java中对程序进行修改的时机。
1.编译期(预处理),用的是apt,通过编译器javac的-processor参数,指定注解预处理类,对程序进行修改。这个时期可以做的事情,可以通过解析原程序生成的抽象语法树(AST)来创建新的源程序。日本比较有名的orm框架doma2用的就是这种方法,比如自动实例化Dao interface生成实例化后的源文件。也可以对抽象语法数(AST)进行修改,编译成新的class。Lo...原创 2017-02-03 13:43:27 · 155 阅读 · 0 评论 -
Spring boot + doma2
已经有很多很多的数据访问层了,每种或多或少都有自己的特点。由于个人习惯,对这个功能有以下要求:1.必须能写原生SQL 对于那种能生成sql的库不是很喜欢,尤其是比较复杂的sql,每次还要打印出sql检查一下生成的对不对。 另外最好不要像mybatis那种要把sql写在xml文件里,看起来太乱。 2.对于单表简单的CRUD,可以自动生成sql 也就是说我可...原创 2017-03-01 14:03:05 · 2049 阅读 · 0 评论 -
@ExceptionHandler方法中redirect
在web开发中比较流行PRG(Post/Redirect/Get)做法,如果有数据输出的话,会放到session里。对于@RequestMapping注解的方法,直接通过参数注入,把RedirectAttributes实例注入进去就好了但是,对于@ExceptionHandler注解的方法,却不行。这是因为@ExceptionHandler注解处理类ExceptionHandlerMet...原创 2016-08-08 19:03:52 · 733 阅读 · 0 评论 -
Spring 数据绑定时的类型转换错误
在Spring的数据绑定里,可以使用@ModelAttribute把表单绑定到JavaBean上。但是大家都知道从客户端传过来的数据实际上首先都是字符型的,如果绑定对象JavaBean上有别的类型,那么势必需要进行类型转换。在这点上Spring做的比较欠缺,在绑定之前并没有进行类型check,硬生生的进行转换。比如转换为数字或者日期类型时 public class Pers...原创 2016-07-21 16:13:44 · 476 阅读 · 0 评论 -
程序中集成embedded tomcat
启动程序没看出来比用eclipse启动好在什么地方,也许一样。[code]package start;import org.apache.catalina.Context;import org.apache.catalina.Engine;import org.apache.catalina.Host;import org.apache.catalina.L...2007-11-15 11:22:48 · 933 阅读 · 0 评论 -
表单验证
表单验证除非只是一个发布资源的web应用,否则很难不和用户进行交互。在交互的过程中就带来了一个验证用户输入的问题。web应用是通过http协议和用户进行信息传输的,所以服务器端和客户端相互之间都是透明的,只存在符合http协议的数据传输,不用知道对方是什么。严格来讲,由于客户端无论什么数据都有可能传送到服务器端(自己写客户端,什么数据都可以传送),所以在服务器端对数据进行验...2007-11-16 15:38:25 · 98 阅读 · 0 评论 -
创建全能的表格管理程序
[code] String sql = "SELECT * FROM \""+tableName+"\" LIMIT 0 OFFSET 0"; List list = new ArrayList(); Connection conn = null; try { conn = getConn(); Statement st = null; try{...2007-12-18 15:17:49 · 112 阅读 · 0 评论 -
POI中Event API的简单使用。
在使用POI读取比较大的Excel文件时,发生了OutMemory异常,没办法只能改为使用Event API。相对于user model,event user model使用起来稍微繁琐一些。下面为简单的使用示例读取文件[code="java"] File file = new File("c:\\test.xls"); FileInputStream fis = ...原创 2010-06-08 13:15:50 · 547 阅读 · 0 评论 -
编译Tomcat用到的几个包。
ant.jarwsdl4j-1.5.1.jarjaxrpc.jarjasper-jdt.jar原创 2010-06-16 15:36:46 · 142 阅读 · 0 评论 -
Spring boot和mybatis结合时mapper的扫描
关于Spring boot和mybatis的结合使用,网上已经有很多介绍了。基本上就是写个配置文件,指定SqlSessionFactory和TransactionManager的bean定义,还有指定MapperScan的扫描路径。 实际上这个配置文件不写,也没啥问题,对于TransactionManager,有DataSourceTransactionManagerAutoCon...原创 2016-04-13 12:50:02 · 560 阅读 · 0 评论 -
Spring boot里类的扫描
spring boot里,扫描的class对象是用注解@ComponentScan(未指定的情况下默认是main函数所在package)来指定的。然后通过类ComponentScanAnnotationParser来读取这些packages,交给ClassPathScanningCandidateComponentProvider来扫描这些类,找到package下所有类的活默认是由Path...原创 2016-04-21 09:31:31 · 696 阅读 · 0 评论 -
Spring boot传统部署
使用spring boot很方便,一个jar包就可以启动了,因为它里面内嵌了tomcat等服务器。但是spring boot也提供了部署到独立服务器的方法。如果你看文档的话,从jar转换为war包很简单,pom.xml的配置修改略去不讲。只看source的修改,很简单,只要一个配置类,继承自SpringBootServletInitializer, 并覆盖configure方法。...原创 2016-05-10 11:33:35 · 279 阅读 · 0 评论 -
Spring boot里datasource的配置
spring boot里,在包spring-boot-autoconfigure里有个datasource自动配置类写道org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 在配置文件application.properties里,配置了spring.datasource.*后,将自动配置da...原创 2016-06-23 17:16:45 · 1606 阅读 · 0 评论 -
Spring batch的自动运行
一个最简单的spring batch的程序,照办官网的sample,如下一个配置程序 @Configuration@EnableBatchProcessing@EnableAutoConfigurationpublic class BatchConfiguration { @Autowired private JobBuilderFactory jobBu...原创 2016-06-24 17:25:48 · 1526 阅读 · 0 评论 -
Apache Shiro和Spring boot的结合使用
实际上在Spring boot里用Spring Security最合适,毕竟是自家东西,最重要的一点是Spring Security里自带有csrf filter,防止csrf攻击,shiro里就没有。但是Spring Security有点太复杂,custmize起来比较费力,不如shiro来的简单。如果想要在Spring boot里使用shiro,需要进行以下配置,首先pom.xml里...原创 2016-06-28 22:19:48 · 1011 阅读 · 0 评论 -
当apache shiro跟spring cache结合使用时
如果双方都用ehcache作为缓冲库的话,对于cachemanger的设定会产生冲突,因为如果没有给shiro的EhCacheManager设定cachemanager的话,会创建一个默认名称的cachemanager,而spring的cache自动配置也同样会创建一个默认名称的cachemanager,由于ehcache2.5以后,不允许同一个jvm上存在两个同样名字的cachemanager...原创 2016-07-15 22:41:24 · 292 阅读 · 0 评论 -
谈谈spring boot里的@import
使用spring boot时,如果想自己实现一些初始设置比较复杂的bean时,可以在类上用@Configuration注解,然后类内部在返回具体bean的方法上使用@Bean注解。那么如何让容器找到这个配置类呢? 1.最简单的方法,当然是把它放到程序可以扫描到的package里,也就是@ComponentScan注解所指定的package里。 平时自己创建的配置类通常用这种方...原创 2017-03-09 14:50:51 · 336 阅读 · 0 评论