`
文章列表
Maven常用插件 非常常用 <!-- mvn help:system help:effective-pom help:effective-settings --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-help-plugin</artifactId> <version>2.2</version> </plugin> <!-- mvn compiler:co ...
Maven仓库查询 http://search.maven.org 油多不坏菜,这些都加上算了 <repositories> <repository> <id>java-repo</id> <name>java Repository</name> <url>http://download.java.net/maven/2/</url> </repository> <repository> <id>central</id ...
尝试使用了一下mybati的插件功能 写了一个基础类备以后使用 import java.sql.Connection; import java.util.Properties; import org.apache.ibatis.executor.statement.StatementHandler; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.plugin.Interceptor; i ...
看了一下SpringMVC的源代码,原来SpringMVC也提供了一个封装过的ThreadLocal保存了每次请求的HttpServletRequest对象, (详细请看org.springframework.web.context.request.ServletRequestAttributes的源代码) 这下我简单封装一下写了一个工具,用起来还是蛮方便的 package samples.utils; import java.util.Arrays; import java.util.Collection; import java.util.Locale; import ...
自从spring3.1 开始就有了这个接口,可以为@RequestMapping标注的方法扩展传入的参数。 以shiro为例,扩展一个标注,@CurrentUser,只要有这个标注,就可以在shiro的安全上下文中取出适当的对象直接从参数传入,request响应函数。 import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPol ...
用了apache-shiro以后,偶然发现servlet环境下(我开发时用的servlet3.0) HttpSession.getServletContext() 一直返回的是null 查看了ShiroHttpSession实现类的源代码,结合shiro官方文档。发现修改web.xml可以解决这个问题。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi=" ...
自己扩展的函数 import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import jetbrick.template.JetAnnotations.Functions; ...
一直以为给定的下面配置是短路方式的,即defaultJdbcRealm可以成功认证,backDoorJdbcRealm就不会被调用。 其实不然,org.apache.shiro.authc.pam.FirstSuccessfulStrategy并不是这个意思,所有的realm依然都会被调用。 只不过是第一个认证成功的AuthenticationInfo作为最后的结果返回。 <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> ...
今日研究了一下SpringWebFlow这个项目,作为Spring子项目,相对来说用得人稍微少一些。当然,这只是相对于Spring Security, Spring Data 等项目来说。 我在我的一个玩具项目上用SpringWebFlow + SpringMVC 实现了一个较普通的用户注册流程 https://github.com/yingzhuo/mycar 安装:需要本地(localhost)安装MySQL数据库5.1以上 mvn sql:execute mvn install mvn jetty:run 之后访问http://localhost:8080/ 即可进入登录页面,点击注册l ...
SpringMVC杂记(十六) spring-mvc 与 openid4java 以GoogleOpenID 为例,试验了OAuth单点登录的用法 <dependency> <groupId>org.openid4java</groupId> <artifactId>openid4java</artifactId> <version>0.9.8</version> </dependency> import java.util.List; import javax.s ...
零) 代码 import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.sp ...
零) 这是干什么呢? 随意翻看spring-data-jpa (以下简称sdj)文档时发现有这个有趣的小东西, sdj提供了几个有趣的元注释用在实体类上,作为对javax.persistence.*元注释的扩展。 @CreatedDate @CreatedBy @LastModifiedDate @LastModifiedBy 有了这几个元注释以后就会在实体创建或更新的时候把操作时间或操作人一并更新到数据库里去, 这个很方便。 一) 环境 springframework (3.2.4.RELEASE) spring-data-jpa (1.3.4.RELEASE) <de ...
整理备份 效果图
SpringMVC杂记(十五) spring-mvc controller 的切面 一)对一般Spring上下文管理的bean,配合切面表达式都可以对其做拦截操作,原理是Spring在启动的时候,利用字节码技术生成了其子类, 这样就把切面逻辑“织入”到bean之中了。这个用spring的人一般都懂。但是很多人发现,spring-mvc使用起来,controller的代码不能通过这种 方式自己织入逻辑。 Spring MVC在启动的时候会根据处理器策略加载handler映射到一个map中, 这个时候因为配置的原因它从容器中取到的对象是原生对象,而不是我们代理的对象;所以不管我们的Controll ...
温故而知新,一年前写过一篇此内容的文章,貌似已经遗失。 一个服务(service)通常指的是已知的接口或者抽象类,服务提供方就是对这个接口或者抽象类的实现,然后按spi标准存放到资源路径META-INF/services目录下,文件的命名为该服务接口的全限定名。 如果一个接口com.github.yingzhuo.api.SomeService其实现类为com.github.yingzhuo.spi.SomeServiceProvider, 那此时需要在META-INF/services中放置文件com.github.yingzhuo.api.SomeService,其中的内容就为该实现类的 ...
Global site tag (gtag.js) - Google Analytics