当你要使用one to one,many to one 就会碰到N+1的问题.很明显,对象之间关联很多有A关联B,B关联C,C关联A这样的关系,如果不是采用延迟加载,很容易一下在出现成千上万对象,造成N+1的问题. 而Mybatis 设置延迟加载主要2个属性配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//ibatis.apac…
shiro是权限管理框架,现在已经会利用它如何控制权限.为了能够为多个系统提供统一认证入口,又研究了单点登录框架cas.因为二者都会涉及到对session的管理,所以需要进行集成. Shiro在1.2.0的时候提供了对cas的集成.因此在项目中添加shiro-cas的依赖     <dependency>        <groupId>org.apache.shiro</groupId>       <artifactId>shiro-cas</ar…
Shiro的组件都是JavaBean/POJO式的组件,所以非常容易使用Spring进行组件管理,可以非常方便的从ini配置迁移到Spring进行管理,且支持JavaSE应用及Web应用的集成. 在示例之前,需要导入shiro-spring及spring-context依赖,具体请参考pom.xml. spring-beans.xml配置文件提供了基础组件如DataSource.DAO.Service组件的配置. JavaSE应用 spring-shiro.xml提供了普通JavaSE独立应用的…
shiro是一款轻量级的安全框架,提供认证.授权.加密和会话管理四个基础功能,除此之外也提供了很好的系统集成方案. 下面将它集成到之前的demo中,在之前spring中使用aop配置事务这篇所附代码的基础上进行集成 一.添加jar包引用 修改pom.xml文件,加入: <!-- security --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core&…
一.IOC和DI 1.IOC(Inversion of Control) 其思想是反转资源获取的方向.传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源:而应用了IOC之后,则是容器主动的将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接收资源.这种行为也被成为查找的被动形式. 2.DI(Dependency Injection) IOC的另一种表达方式:即组件的一些预先定义好的方式(例如:setter方法)接受来自如容器的资源注入.相对于IOC而言,…
最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术,有点类似与JSP,它允许页面设计者引用Java中定义的方法.前端页面设计者和后端Java开发者能够同时使用MVC的模式开发网站,这样前端能够把精力放在页面的设计上,后端也可以把精力放在代码开发上.Velocity把Java代码从Web页面中分离, 使网站可维护性更强. 注:项目使用的是Spring+…
首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中使用C3P0连接池 首先在hibernate项目中引入此c3p0相关jar包,我是在hibernate4.2中拿出来的: 在hibernate.cfg.xml中配置 <?xml version="1.0" encoding="UTF-8"?> <!--…
前言:在Spring中可以通过对方法进行事务的配置,而不是像原来通过手动写代码的方式实现事务的操作,这在很大程度上减少了开发的难度,本文介绍Spring事务配置的两种方式:基于配置文件的方式和基于注解的方式.并对配置过程中可能出现的问题作出总结. 一.基于配置文件的方式 <context:component-scan base-package="com.learning"/> <!-- c3p0连接池配置--><!--注意最好是加上编码的设置,并注意在xm…
1 如果在方法.类.接口上使用注解的方式声明事务,需要在配置文件中进行配置,以便通知 Spring 容器对标注 @Transactional 注解的 bean 加工处理. 首先需要引入 tx 命名空间, <tx:annotation-driven transaction-manager="taManager"> 2 @Transactional 注解可以被应用于接口定义和接口方法.类定义和类的 public 方法上 不过建议在接口实现类上使用注解,因为注解不能被继承. 在方…
1 注册自定义属性编辑器,方法一.使用BeanFactory, 则用户需要手动调用 registerCustomEditor(Class requiredType, PropertyEditor propertyEditor) 方法手动注册自定义的属性编辑器.方法二.使用 ApplicationContext,则只需在配置文件中通过 CustomEditorConfigure 注册即可.CustomEditorConfigure 实现了 BeanFactoryPostProcessor 接口,因…