- 浏览: 562497 次
- 性别:
- 来自: 长沙
最新评论
-
yubao2008:
[size=x-small]为什么我也这样试了, 就是没有生效 ...
javax.servlet.http.HttpServletResponse 得到 status_code -
chenrl:
...
SpringMVC杂记(十五) spring-mvc controller 的切面 -
LONGTENGLONG:
你好,这样配置的,得到的集合为空,是什么原因?
apache-shiro杂记(一) 统计在线用户数目 -
xiafengfeiwu:
[flash=200,200][url]引用[/url][/f ...
apache-shiro 学习笔记 -
3108493554:
你好 ,有些问题想请教下,加下我qq310849354,你这上 ...
SpringMVC杂记(十二) 自定义Interceptor从Active Directory得到域信息
文章列表
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,其中的内容就为该实现类的 ...