随笔分类 - Spring
摘要:之前获取登录用户的方法是BaseController中封装统一的方法或者封装一个UserContextHolder的工具类,然后代码中用工具类获取。最近项目中看到Controller中获取当前用户直接参数上标记一下。 1. 用户类和获取登录用户的工具类 package com.xm.ggn.util
阅读全文
摘要:在研究事务的时候发现事务的AOP类TransactionInterceptor是实现了接口MethodInterceptor,于是想着研究下这种AOP的实现方式。 1. 实现方式1如下 1.实现MethodInterceptor接口。(扮演Advice通知的角色) 简单的实现方法执行前、执行后打印一
阅读全文
摘要:1.Aware接口 Aware接口是为了使bean能够感知到自身的一些属性,例如BeanNameAware接口是为了让自身Bean能够感知到,获取到自身在Spring容器中的id属性;ApplicationContextAware接口能够获取到ApplicationContext,实现了BeanFa
阅读全文
摘要:1.事件监听器模式简单使用 比如监听门开关改变事件以及name改变事件。 1.事件相关类 抽象门事件 package cn.qlq.event.base; import java.util.EventObject; public abstract class DoorEvent extends Ev
阅读全文
摘要:实现定时任务简单的有四种方式:Timer\ScheduledThreadPool线程池\quartz(常用),还有另一种就是springtask。 都说springtask上手简单,于是简单的研究一下springtask的使用,并且运用到自己的项目中。其也有两种配置方式,第一种是基于xml配置,第二
阅读全文
摘要:<context:annotation-config> 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过packagesanning的方式)上面的注解。(激活@Resource和@Autowired注解) <context:component-scan>除了具有
阅读全文
摘要:首先明白,spring的IOC功能需要是利用反射原理,反射获取类的无参构造方法创建对象,如果一个类没有无参的构造方法spring是不会创建对象的。在这里需要提醒一下,如果我们在class中没有显示的声明构造方法,默认会生成一个无参构造方法,但是当我们显示的声明一个有参构造方法的时候,JVM不会帮我们
阅读全文
摘要:核心容器(Spring Core) 核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范
阅读全文
摘要:今天在再次深入学习SpringAOP之后想着基于注解的AOP实现日志功能,在面试过程中我们也经常会被问到:假如项目已经上线,如何增加一套日志功能?我们会说使用AOP,AOP也符合开闭原则:对代码的修改禁止的,对代码的扩展是允许的。今天经过自己的实践简单的实现了AOP日志。 在这里我只是简单的记录下当
阅读全文
摘要:在使用spring时,经常需要在普通类中获取session,request等对像. 1.第一钟方式,针对Spring和Struts2集成的项目: 在有使用struts2时,因为struts2有一个接口使用org.apache.struts2.ServletActionContext即可很方便的取到s
阅读全文
摘要:Spring AOP介绍 1.编程范式概念 面向过程编程:C 面向对象编程:c++,Java 函数式编程 事件驱动编程:GUI编程 面向切面编程(AOP) 2.AOP是什么 (1)是一种编程范式,不是编程语言 (2)解决特定问题,不能解决所有问题 (3是OOP的补充,不是替代。 3.AOP初衷: 1
阅读全文
摘要:注解扫面的bean的ID问题 0.前提需要明白注解扫描出来的bean的id默认是类名首字母小写,当然可以指定id: (1)只写注解不指定id 上面实际上是等价于xml中的下面配置: 测试:(程序中获取spring容器中的bean) 打断点查看bean:(获取到的是容器中的唯一bean的引用,且此对象
阅读全文
摘要:前几天在spring整合Redis的时候使用了手动的方式,也就是可以手动的向redis添加缓存与清除缓存,参考:http://www.cnblogs.com/qlqwjy/p/8562703.html 今天想的将spring注解整合Redis缓存弄明白,于是通过查阅资料,先做记录如下: 大致步骤如下
阅读全文
摘要:1.前言 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。我们都知道,在日常的应用中,数据库瓶颈是最容易出现的。数据量太大和频繁的查询,由于磁盘IO性能的局限性,导致项目的性能越来越低。这时候,基于内存的缓存框
阅读全文
摘要:@Cacheable @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @Cacheable 作用和配置方法 实例 @Cacheable(value=”accountCache”),这个注释的意思是,当调用这个方法的时候,会从一个名叫 accountCache
阅读全文
摘要:除去properites文件路径错误、拼写错误外,出现"Could not resolve placeholder"很有可能是使用了多个PropertyPlaceholderConfigurer或者多个<context:property-placeholder>的原因。 比如我有一个dao.xml读
阅读全文
摘要:http://www.importnew.com/24305.html 简单易懂的(重要); https://www.cnblogs.com/lcngu/p/5339555.html 将的详细的: http://blog.csdn.net/yuexianchang/article/details/7
阅读全文
摘要:Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。 Spring优点: 低侵入式设计,
阅读全文
摘要:在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便。在Spring中也可以这么做,而且Spring有两种加载proper
阅读全文
摘要:今天研究了一下scope的作用域。默认是单例模式,即scope="singleton"。另外scope还有prototype、 request、session、global session作用域。scope="prototype"多例。再配置bean的作用域时,它的头文件形式如下: 如何使用spri
阅读全文